2012年2月26日 星期日
synology sshd重新啟動
另外順便提一下,synology的很多服務程式的啟動、停止script都放在這個目錄裡:/usr/syno/etc/rc.d/
2012年2月14日 星期二
對joomla 1.5的「聯絡我們」加入recapthca的作法
細節前面已談過,只要真的看懂前面的文章,就一定會的,所以這邊僅就該改的檔案即其改的位置提出:
分別為components/com_contact/views/contact/tmpl/default_form.php
與components/com_contact/controller.php
這兩個檔案,前者是放入
<?php
//底下是發哥自己加入的
?>
<div align="center">請於下列欄位中輸入下圖所見之驗證碼</div>
<div align="right"><?php
require_once('recaptchalib.php');
$publickey = "你的公開鑰匙"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<?php
//以上是哥發自己加入的
?>
後者放入
//
require_once('recaptchalib.php');
$privatekey = "你的私人密鑰";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("你輸入的驗證碼錯誤,請回上一頁再試一次!" .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}//
前者放在:
<button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>
之前而成為:
<?php
//底下是發哥自己加入的
?>
<div align="center">請於下列欄位中輸入下圖所見之驗證碼</div>
<div align="right"><?php
require_once('recaptchalib.php');
$publickey = "你的公開鑰匙"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<?php
//以上是哥發自己加入的
?>
<button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>
後者放在:
function submit()
{
global $mainframe;// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );$useSecurityImagesInContact = false;
if (file_exists(JPATH_SITE.DS."administrator".DS."components".DS."com_securityimages".DS."config.securityimages.php")) {
include(JPATH_SITE.DS."administrator".DS."components".DS."com_securityimages".DS."config.securityimages.php");
$useSecurityImagesInContact = $securityImagesInContact;
}
之後,而成為:
function submit()
{
global $mainframe;// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );$useSecurityImagesInContact = false;
if (file_exists(JPATH_SITE.DS."administrator".DS."components".DS."com_securityimages".DS."config.securityimages.php")) {
include(JPATH_SITE.DS."administrator".DS."components".DS."com_securityimages".DS."config.securityimages.php");
$useSecurityImagesInContact = $securityImagesInContact;
}
//
require_once('recaptchalib.php');
$privatekey = "你的私人密鑰";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("你輸入的驗證碼錯誤,請回上一頁再試一次!" .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}//
存檔完即可。
特別再強調recaptchalib.php的路徑必須指對!路徑若錯,找不到檔案的話,一切就沒用了!
2012年2月12日 星期日
安裝了reCAPTCHA正常使用一段時間後,卻出現Could not open socket?
安裝了reCAPTCHA正常使用一段時間後,卻出現了Could not open socket?
如下圖:
其解決方法是在原的放於系統中的recaptchalib.php打開,找到其中的
define("RECAPTCHA_VERIFY_SERVER", www.google.com);
將其註解掉並改將其dn改為ip即可,如下
define("RECAPTCHA_VERIFY_SERVER", "74.125.226.49");
2012年2月3日 星期五
從joomla 1.5的jdownloads升級到 joomla2.5 的jdownloads
架設新的joomla2.5系統,其中安裝有for joomla 2.5的jdownloads。
接著進到phpMyadmin打開joomla2.5的資料庫,將j17_jdownloads_為前綴的8個資料表刪除(你的不見得是j17,要看你的系統怎麼設!)。過程如下:
如下圖先選到這8個資料表!
再如下圖選下方的刪除功能!
接著到舊的系統資料庫裡將同屬那8個資料表拷備到新系統資料庫裡並更改為新系統資料庫的前綴!
其做法如下(以jxxxx_jdownloads_cats這個資料表為例,其餘的操作方式一樣!):
首先底我進到我的jos_jdownloads_cats這個資料表,然後選右上角的「操作」選項!
接著在「將資料表複製到(資料庫名.資料資料表名稱):」功能區裡,選擇你要拷備到哪個資料庫(我這裡的目標是exten這個資料庫)?其下的欄位則讓你輸入拷備過去之後的資料表各稱(依我的系統而言,我應該要改為j17_jdownloads_cats),設定好之後,按右下方的「執行」鈕即完成原資料表jos_jdownloads_cats的轉移更名動作了!
剩餘的7個資料表做法也是依照此一方式即可!
這個就完成jdownloads的資料庫升級轉移的動作了。
接著就是把你的joomla 1.5 根目錄裡的jdownloads這個資料夾,整個拷備過去joomla2.5根目錄即可!
這樣就完成jdownloads的轉移升級動作了。
2012年2月2日 星期四
如何升級UDDEIM到2.3版以上
UDDEIM2.3以前的版本要直接升級到2.3版以上者,有點小題,
做法是:
一、先備份你的佈景主題(如果你不是使用內容的佈景主題)
二、備份數據庫(至少前綴為“uddeim”的所有表,可使用phpMyAdmin,你可以複製一個新的名稱,如表jos_uddeim_backup)。
三、使用內部的備份功能,備份您的配置
uddeIM後台 - >維護 - >備份
或
備份配置文件:
/administrator/plugins/com_uddeim/config.class.php
在你安裝2.3以上的版本後進到後台的uddeIM 管理介面裡,會有一行紅色字串:<<完整內容我沒記下來,大致是說你的資料庫還沒更新>>!
接著打開下載的檔案,其中uddeIM_2.6_unzip1st\uddeIM_2.6_unzip1st\README資料夾裡有一個README uddeIM 2.6.txt檔
打開來看,裡面有升級的說明,以下我取該說明檔中的一部份來看:
Update your database tables (go to phpMyAdmin and enter following SQL statements in the SQL box,
this will create the missing fields).You will find a small tutorial in the FAQ (chapter 1.3.x "How can I upgrade uddeIM tables?").
When you upgrade 2.5 to 2.6:
============================
nothing to do
When you upgrade 2.4 to 2.6:
============================
nothing to do
When you upgrade 2.3 to 2.6:
============================
nothing to do
When you upgrade 2.2 to 2.6:
============================
ALTER TABLE `jos_uddeim` ADD `delayed` INT( 1 ) NOT NULL DEFAULT '0' ;
ALTER TABLE `jos_uddeim` ADD INDEX ( `delayed` ) ;
ALTER TABLE `jos_uddeim_emn` ADD `moderated` INT( 1 ) NOT NULL DEFAULT '0' ;
When you upgrade 2.1 to 2.6:
============================
ALTER TABLE `jos_uddeim` ADD `delayed` INT( 1 ) NOT NULL DEFAULT '0' ;
ALTER TABLE `jos_uddeim` ADD INDEX ( `delayed` ) ;
ALTER TABLE `jos_uddeim_emn` ADD `moderated` INT( 1 ) NOT NULL DEFAULT '0' ;
When you upgrade 2.0 to 2.6:
============================
ALTER TABLE `jos_uddeim` ADD `systemflag` INT( 1 ) NOT NULL DEFAULT '0' ;
ALTER TABLE `jos_uddeim` ADD INDEX ( `systemflag` ) ;
UPDATE `jos_uddeim` SET `systemflag` = 1 WHERE `systemmessage` != '' OR `systemmessage` IS NOT NULL ;
UPDATE `jos_uddeim` SET `systemflag` = 2 WHERE `fromid` = `toid` ;
ALTER TABLE `jos_uddeim` ADD `delayed` INT( 1 ) NOT NULL DEFAULT '0' ;
ALTER TABLE `jos_uddeim` ADD INDEX ( `delayed` ) ;
ALTER TABLE `jos_uddeim_emn` ADD `moderated` INT( 1 ) NOT NULL DEFAULT '0' ;
When you upgrade 1.9 to 2.6:
============================
ALTER TABLE `jos_uddeim` ADD `systemflag` INT( 1 ) NOT NULL DEFAULT '0' ;
ALTER TABLE `jos_uddeim` ADD INDEX ( `systemflag` ) ;
UPDATE `jos_uddeim` SET `systemflag` = 1 WHERE `systemmessage` != '' OR `systemmessage` IS NOT NULL ;
UPDATE `jos_uddeim` SET `systemflag` = 2 WHERE `fromid` = `toid` ;
ALTER TABLE `jos_uddeim` ADD `delayed` INT( 1 ) NOT NULL DEFAULT '0' ;
ALTER TABLE `jos_uddeim` ADD INDEX ( `delayed` ) ;
ALTER TABLE `jos_uddeim_emn` ADD `moderated` INT( 1 ) NOT NULL DEFAULT '0' ;
When you upgrade 1.8 to 2.6:
============================
CREATE TABLE IF NOT EXISTS `jos_uddeim_attachments` (
`id` int(10) unsigned NOT NULL auto_increment,
`mid` int(1) NOT NULL default '0',
`tempname` TEXT NOT NULL,
`filename` TEXT NOT NULL,
`fileid` varchar(32) NOT NULL,
`size` int(1) NOT NULL default '0',
`datum` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `mid` (`mid`),
KEY `fileid` (`fileid`),
KEY `datum` (`datum`)
) ENGINE=MyISAM;
在含2.2版本以下的每一個版本,該說明檔中各有教你如何升級該資料庫的方法底下我以2.2版升級為例:
進到phpMyadmin裡進到你的joomla資料庫裡,
點選如下圖中的SQL查詢
在其中貼上從2.2版升級指令成為如下圖之內容,並以滑鼠點選右下角紅色箭頭指示之按鍵
最後會告訴今有多少個檔案受影響,這樣就完成升級的動作了!
2012年2月1日 星期三
qnap與一般linux主機間要ssh金鑰登入,不用密碼的方法!
早在qnap韌體不知在第幾版前,依照一般的操作方式(如這篇文章所提的方法:兩台linux主機以ssh自動登入,不無打入密碼的方法!),要登入都是可以的,但不知在那個版本之後,突然問就會出問題,原因在路徑出了問題。
ssh-keygen -t rsa
上述指令打完後,其內定的路徑是/share/homes/admin/.ssh,然而系統會告知你無法建立此資料夾,原因是系統除了/share這個資料夾外,其間的homes與admin兩個子資料夾均沒有,所以當然無法建立.ssh這個資料夾了,而當然我們只好自己建立。
建立好後總算可以:利執行完ssh-keygen -t rsa指令!
在/share/homes/admin/.ssh產生的id_rsa,和id_rsa.pub這兩個檔案,其中依據兩台linux主機以ssh自動登入,不無打入密碼的方法!的說法是把qnap生成的id_rsa.pub拷貝到B機上,假設拷貝到B機的臨時目錄下,如:
scp /share/homes/admin/.ssh/id_rsa.pub root@B機ip:/tmp
然後再用root帳號登陸B機,進入其主目錄,創建authorized_keys檔,並設置好許可權。
cd ~/.ssh
cat /tmp/id_rsa.pub >>authorized_keys
chmod 400 authorized_keys
rm -f /tmp/id_rsa.pub
當你設定好之後回到qnap,重新以root身份試著登入B機,會發現無法登入!
其原因是Qnap主機透過ssh-keygen -t rsa指令產生的id_rsa,和id_rsa.pub,這兩個鑰匙並沒有在正確的位置,一般系統在核對金鑰時其內定的路徑是/root/.ssh裡,所以你必須再將你原先放在/share/homes/admin/.ssh裡的兩個檔案拷備過來,這樣才能完成金鑰登入B機的方法!
我將原來centos 5廢掉改安裝在centos 6 的方法!
原來在centos 5下,除了系統硬之外,還有兩顆獨立的硬碟,其結構如下
/dev/mapper/VolGroup00-LogVol00
113410608 12249788 95306820 12% /
/dev/sda1 19919336 235208 18654668 2% /boot
tmpfs 1553280 0 1553280 0% /dev/shm
/dev/sdc1 480719056 116089924 340209932 26% /var/www/g2data
/dev/sdb1 480719056 190972784 265327072 42% /var/www/html
其中
/dev/sda1 為第一顆系統碟
/dev/sdb1 為第二顆資料碟(裡面裝著gallery2的所有資料) 掛載路徑 /var/www/g2data
/dev/sdc1 為第三顆資料碟(裡面裝著其它所有網頁服務管理程式及資料) 掛載路徑 /var/www/html
由於是要在一個新的硬碟裡架設新的系統
所以我在一顆新的硬碟裡安裝centos 6
安裝完後 先以yum –y update更新到最新的版本
接著將原系統內之httpd.conf與iptables複製到新的系統內
新系統要安裝mysql並且將原來備份的mysql資料庫複製回來!
在新系統的/var/www裡將備份機裡的moodledata拷備回來!
新系統加上防毒軟體yum -y install clamav*
接著開啟/etc/fstab將最底部加上下列兩行(使系統開機時自動掛載硬碟到/var/www/g2data與/var/www/html)
vim /etc/fstab
/dev/sdc1 /var/www/g2data ext3 nosuid,noexec,nodev 0 0
/dev/sdb1 /var/www/html ext3 nosuid,noexec,nodev 0 0
接著安裝webmin(安裝完webmin後,將各種一開機就要啟動的服務設定好,如httpd、mysqld、sshd.......等等)
再在系統裡安裝ffmpeg與MPlayer及MEncoder(方法請看這篇文章:centos 安裝ffmpeg 及 mplayer mencoder)
還要將原先執行自動備份之contra…的檔案複製到目的地,如此才能接續原先的自動備份功能!
另外/home/http_user這個資料夾整個拷備到新系統的相對位置。
/var/set/底下有幾個自己寫的幾個簡單的script也要拷備到相對位置!
其間會遇到防火牆設定的問題,我必須將舊主機的防火牆設定檔拷回新主機(備份原先的設定檔的指令是iptables-svae > 檔名,透過scp 指令將該檔案拷備到新的系統裡,然後在其路徑裡下達指令iptables-restore < 檔名,然後重新啟動防火牆,service iptables restart),新主機的senlinux也必須關掉(命令列下執行setenforce 0就可以暫時關閉,要永久關閉則要編輯/etc/sysconfig/selinux)
vi /etc/sysconfig/selinux
然而在重新安裝完後,我遇到了ostube亂碼的問題,也就是在phpMyadmin裡看檔案資料都可以正常觀看中文,如下圖SELINUX=enforcing 改成--> SELINUX=disabled
但當我到ostube網站觀看資料時,卻出現如下圖的亂碼?
上網找了半天沒有看到像我這樣的問題,但卻有看到有提到網站看沒問題到資料庫端看會出現亂碼的例子,於是我就試著做看看將(資料來源:阿杰老師的 osTube 實驗室
開啟程式也就解決了我ostbue亂碼的問題了!真高興!
var/www/ostube/includes/class.database.php
約第50行:找到function DBaccess
往下找到$this->connected = true;(第59行)
在上一行插入@mysql_query("SET NAMES utf8",$this->connection);
參考程式碼如下:
if(!$this -> connection = @mysql_connect($DBhost,$DBuser,$DBpass)) {
if($this->debug) die("Error: Can not connect to database - " . $DBhost);
unset($this);
return false;
} else {
$this->connected = true;
}
改成
if(!$this -> connection = @mysql_connect($DBhost,$DBuser,$DBpass)) {
if($this->debug) die("Error: Can not connect to database - " . $DBhost);
unset($this);
return false;
} else {
@mysql_query("SET NAMES utf8", $this->connection);
$this->connected = true;
}