2012年12月31日 星期一

我的ibt安裝與自動啟動之設定法

這段引用自http://www.mobile01.com/topicdetail.php?f=347&t=1973717&p=11
開始吧...
設定ibt-1283的網路,使用固定IP(浮動IP的SMB.CONF我不會設)
將ibt-1283連上internet
使用PC telnet 到ibt-1283
用root登入
確認一下上網有沒有成功
ping一下tw.yahoo.com
看看回應是不是alive
/ # ping tw.yahoo.com
tw-tpe-fo.fyap.b.yahoo.com is alive!
接下來下面#中間的指令一行一行的執行(我用windows 7 內建的telnet,全部複製,貼到telnet去,等幾分鐘就好了)
#
mkdir /tmp/hdd/root/opt
mount -o bind /tmp/hdd/root/opt /opt
mkdir /tmp/hdd/root/package
mount -o bind /tmp/hdd/root/package /tmp/package
mkdir /opt/tmp/ipkg
cd /opt/tmp/
wget http://www.kovari.priv.hu/download/ipkg-cl.tgz
tar -xvf ipkg-cl.tgz
chmod +x /opt/tmp/ipkg-cl
rm ipkg-cl.tgz
wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk
./ipkg-cl install uclibc-opt_0.9.28-13_mipsel.ipk
wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ipkg-opt_0.99.163-10_mipsel.ipk
./ipkg-cl install ipkg-opt_0.99.163-10_mipsel.ipk
rm *.ipk
cd /opt/bin
./ipkg update
./ipkg install samba
 ./ipkg install cron
./ipkg install openssh
 ./ipkg install  openssh-sftp-server
./ipkg install bftpd
./ipkg list_installed
#
ipkg list_installed看一下有沒有samba,bftpd
如果沒有,我也不知道,看你要放棄還是要重做一次
如果有那就只剩設定檔了
下載附檔bftpd.conf,smb.conf,rcS
用ultraEdit修改(不要轉成Dos格式)
修改smb.conf
interfaces = 172.16.1.16/16
hosts allow = 172.16.1.16/16
我的ip是172.16.1.16
如果你的ip是用192.168.X.X
interfaces = 192.168.X.X/24
hosts allow = 192.168.X.X/24
bftpd.conf應該可以直接用
如果你要修改請自行google
將bftpd.conf,smb.conf,rcS放到隨身碟的根目錄
接上ibt-1283後,copy到/opt/etc
在telnet上輸入以下指令(sdb1是USB隨身碟mount後的目錄,有可能是sda1,sdc1....可以輸入mount看一下)
cp /tmp/usbmounts/sdb1/bftpd.conf /opt/etc
cp /tmp/usbmounts/sdb1/smb.conf /opt/etc
cp /tmp/usbmounts/sdb1/rcS /usr/local/etc
rcS我不知道可不可以用copy的
如果不行請用vi(請google vi 的用法)
在telnet上輸入以下指令
vi /usr/local/etc/rcS
按一下鍵盤的A
將游標一直往下移到不能移
copy#間的文字貼過去
按一下鍵盤的ESC鍵
輸入:wq
再按一下enter
#
sleep 60
mount -o bind /tmp/hdd/root/opt /opt
sleep 2
/opt/sbin/smbd -s /opt/etc/smb.conf -D
/opt/sbin/bftpd -d -c /opt/etc/bftpd.conf
#
做完以上後
在telnet上輸入reboot
重啟後再telnet到ibt-1283
root登入後
等個一兩分鐘
輸入ps看看
598 root 2968 S /opt/sbin/smbd -s /opt/etc/smb.conf -D
601 root 376 S /opt/sbin/bftpd -d -c /opt/etc/bftpd.conf
610 root 2940 S /opt/sbin/smbd -s /opt/etc/smb.conf -D
614 root 468 S /bin/sh /usr/sbin/pppoe-connect
667 root 452 S /usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/pppoe.
669 root 416 S sh -c /usr/sbin/pppoe -p /var/run/pppoe.conf-pppoe.pi
671 nobody 128 S /usr/sbin/pppoe -p /var/run/pppoe.conf-pppoe.pid.pppo
876 root 992 R N /tmp/package/btpd
952 root 3696 S /opt/sbin/smbd -s /opt/etc/smb.conf -D
samba跟bftpd都有起來了
大功告成了
關於rcS的修改
#
sleep 60
#休息60秒,等硬碟mount上來
mount -o bind /tmp/hdd/root/opt /opt
#把/tmp/hdd/root/opt mount成 /opt
sleep 2
#休息2秒
/opt/sbin/smbd -s /opt/etc/smb.conf -D
#啟動SAMBA
/opt/sbin/bftpd -d -c /opt/etc/bftpd.conf
#啟動BFTPD
#撥接上網,改完後,好像不會自動上網(改前會嗎?)
底下是我自己的設定法:
我在ipkg安裝好之後還除了安裝如上述之內容外,還安裝的cron與openssh,我的目的是要讓ibt能自動將資料與我的nas資料同步,而ibt內定只能執行telnet所以只好自己安裝openssh,然而安裝好openssh後卻無法以root帳法登入(因為密碼怎麼打都不對!不知怎麼?),所以我只好改以試著讓ssh登入以不需密碼而直接以金鑰由nas登入的方法嘗試,然因為ibt內建root的家目錄已沒空間了所以用這編文章中qnap與一般linux主機間要ssh金鑰登入,不用密碼的方法!之建立金鑰的方法建也不成,所以我打開/etc/passwd這個檔案,改root的家目錄,把它改成如下
root::0:0:root:/tmp/hdd/root/homes/root:/bin/sh
admin::0:0:root:/tmp/hdd/root/homes/admin:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:0:0:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
sshd:x:103:99:Operator:/var:/bin/sh
nobody::99:99:nobody:/:/bin/sh
default::1000:1000:Default non-root user:/:/bin/sh
總算將金鑰建起,將其放到nas的authorized_keys裡,然而因為nas的內定值反而始得即使我建立好ibt的金鑰並將其放入nas的authorized_keys檔裡,結果怎麼試都還是要我輪入密碼,於是我反向操作,將nas建好的金鑰置入ibt的authorized_keys裡(其中ibt裡的sshd_config檔要更改一些設定如下:
RSAAuthentication yes
PubkeyAuthentication yes
果然可以了,root ssh登入ibt不需要密碼!
接著我要將ibt的sshd自動在開機時執行,於是我在/opt/sbin裡建立一個sshd.sh檔並將其權限改為755,
chmod 755 sshd.sh
而後
vi sshd.sh
其內容如下:
/opt/etc/init.d/S40sshd start
而打開/usr/local/etc/rcS這個檔案,在裡面增加一行使其大致如下:
sleep 60
mount -o bind /tmp/hdd/root/opt /opt
sleep 2
/opt/sbin/smbd -s /opt/etc/smb.conf -D
/opt/sbin/bftpd -d -c /opt/etc/bftpd.conf
/opt/sbin/sshd -f /opt/etc/openssh/sshd_config
/opt/sbin/sshd.sh
/opt/bin/transmission-daemon -g /tmp/hdd/root/transmission
如此ibt一開機,就會自動執行sshd,而我就可以在nas的crontab檔設定rsync指令及其參數讓nas定時自動與ibt的資料同步!

2012年8月17日 星期五

三陽風雲duke125自行更換機油與齒輪油的過程

image
齒輪油加排口使用六10號六角板手
image
齒輪油排油口

image
齒輪油加油口

image
機油加、排油口(排油口要向左方解開)

image
機油排油口使用17mm六角扳手
機油加油口使用尖嘴鉗即可!

2012年2月26日 星期日

synology sshd重新啟動

/usr/syno/etc/rc.d/S95sshd.sh restart
另外順便提一下,synology的很多服務程式的啟動、停止script都放在這個目錄裡:/usr/syno/etc/rc.d/

2012年2月14日 星期二

我的G4l FTP備份路徑

設定好你的FTP帳號密碼後,最重要的是路徑要設定正確,看一下你的帳密登入後可以看到的路徑是什麼?我的是Public

對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?

image

如下圖:

image

其解決方法是在原的放於系統中的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個資料表!

image

再如下圖選下方的刪除功能!

image

接著到舊的系統資料庫裡將同屬那8個資料表拷備到新系統資料庫裡並更改為新系統資料庫的前綴!

 

其做法如下(以jxxxx_jdownloads_cats這個資料表為例,其餘的操作方式一樣!):

首先底我進到我的jos_jdownloads_cats這個資料表,然後選右上角的「操作」選項!

image

接著在「將資料表複製到(資料庫名.資料資料表名稱):」功能區裡,選擇你要拷備到哪個資料庫(我這裡的目標是exten這個資料庫)?其下的欄位則讓你輸入拷備過去之後的資料表各稱(依我的系統而言,我應該要改為j17_jdownloads_cats),設定好之後,按右下方的「執行」鈕即完成原資料表jos_jdownloads_cats的轉移更名動作了!

image

剩餘的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查詢

image

在其中貼上從2.2版升級指令成為如下圖之內容,並以滑鼠點選右下角紅色箭頭指示之按鍵

image

最後會告訴今有多少個檔案受影響,這樣就完成升級的動作了!

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

SELINUX=enforcing 改成--> SELINUX=disabled

然而在重新安裝完後,我遇到了ostube亂碼的問題,也就是在phpMyadmin裡看檔案資料都可以正常觀看中文,如下圖
image
但當我到ostube網站觀看資料時,卻出現如下圖的亂碼?
image
上網找了半天沒有看到像我這樣的問題,但卻有看到有提到網站看沒問題到資料庫端看會出現亂碼的例子,於是我就試著做看看將(資料來源:阿杰老師的 osTube 實驗室
開啟程式 
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;
       }
也就解決了我ostbue亂碼的問題了!真高興!
image

2012年1月31日 星期二

joomla 1.5 前台登錄、註冊、忘記密碼、帳號等加入recapthca驗證碼驗證功能的方法

下載recapthca的php資源的方法與申請設recapthca帳號、公鑰、私鑰的方法請自行參閱這篇文章,joomla 1.5後台管理加入recapthca的作法,重複的部份,這裡不再談了!

為joomla 1.5量身訂做的驗證碼驗證套件很多,為何還要辛苦去手動改為recapthca驗證碼,其實最主要還是安全的問題,因為recapthca驗證碼是有專人免費維護更新,所以較沒有必須不斷更新驗證碼的麻煩與被破解的風險。也因此筆者才要做這個更改,再者它也提供無障礙功能!

我們的目標是要在Joomla 1.5裡,在使用者註冊使用者登入忘記帳號忘記密碼等四個頁面裡加入recapthca驗證碼驗證功能。如下圖

imageimageimageimage

要完成這四個目標頁面,主要必須找到Joomla 1.5裡相關檔案,在該檔案中適當的位置加入相關的recapthca驗證碼語法!

其中所謂的相關檔案主要放於下列資料夾裡:

2012年1月30日 星期一

CB的中文語言檔安裝設定法!

很多人下載CB1.3完整包後,不知如何安裝繁體中文語系,卻怪小弟是否沒放進繁體中文語系?所以只好在此寫此繁體中文語系檔安裝使用的方法

如下圖在後台裡,選擇CB的plugin管理員

image

進到如下畫面後,點選安裝plugin

image

進到如下畫面後,點選選擇檔案,再選上傳及安裝

image

上傳及安裝完後,回到plugin管理員裡,就可以看到traditional_chinese,這個plugin,記得將其發布即可(印象中是這樣的,若有問題的話請在反應討論)。

至於1.7版的繁體中文語言檔,我這邊並沒有,加上近來忙於它務,所以無心改寫!

網友或可自己在網路上蒐尋,找到的話,亦可到此來分享!

然而其實1.3版的繁體中文語言檔,在1.7版裡亦可用(雖有一兩個詞句找不到對應的繁體中文字,但並不影響正常操作與使用)!

2012年1月22日 星期日

joomla 1.5後台管理加入recapthca的作法

首先到http://code.google.com/intl/zh-TW/apis/recaptcha/docs/php.html,進入其中的reCAPTCHA PHP library,下載recaptcha-php-1.11.zip,然後解壓縮,將其中的recaptchalib.php這個程式上傳複製到你的網站裡(要記住你存放的位置路徑,若要免去麻煩,可以將其拷備在與你以下即將更改的程式之同一個資料夾裡!),

接著在你的joomla 1.5的安裝路徑裡,找到administrator/modules/mod_login裡的mod_login.php這個程式

找到其中表單的部份:

<form action="<?php echo JRoute::_( 'index.php', true, $params->get('usesecure')); ?>" method="post" name="login" id="form-login" style="clear: both;">

<p id="form-login-username">
                <label for="modlgn_username"><?php echo JText::_('Username'); ?></label>
                <input name="username" id="modlgn_username" type="text" class="inputbox" size="15" />
        </p>

        <p id="form-login-password">

.................................................

................................................

................................................

        <div class="button_holder">
        <div class="button1">
                <div class="next">
                        <a onclick="login.submit();">
                                <?php echo JText::_( 'Login' ); ?></a>

                </div>
        </div>
        </div>
        <div class="clr"></div>
        <input type="submit" style="border: 0; padding: 0; margin: 0; width: 0px; height: 0px;" value="<?php echo JText::_( 'Login' ); ?>" />
        <input type="hidden" name="option" value="com_login" />
        <input type="hidden" name="task" value="login" />
        <?php echo JHTML::_( 'form.token' ); ?>
</form>

然後在適當的位置加入以下語法:

<?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
//以上是哥發自己加入的
?>

註:其中的你的公開鑰匙改為你在google reCAPTCHA註冊申請的帳密所得到的Public Key資料,而recaptchalib.php的路徑則必須視你的上傳複製的實際路徑位置而調整!

如下圖(在sign up點選之後,會有一些設定步驟,這裡我就不說了!)

image

 

其中註冊完後,可以看到如下圖頁面的資料,其中主要是會用到Public KeyPrivate Key的資料!

image

若一切正確,改完後,你的後台登入畫面應該就會變成這樣:

image

但此實雖可以看到畫面,卻還不能直正有作用,因為還沒有作確認頁的設定。

接著我們還要找到administrator/components/com_login路徑下的admin.login.php這個程式。

用文字編輯器打開admin.login.php

找到 function login()這一段(約52行的位置)

  function login()
        {
//
  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
  }

//

                global $mainframe;

                // Check for request forgeries
                JRequest::checkToken('request') or jexit( 'Invalid Token' );

                $credentials = array();

在其間加入紅色粗體字所標示的字串,其中的你的私人密鑰改為你在google reCAPTCHA註冊申請的帳密所得到的Private Key資料,而recaptchalib.php的路徑則必須視你的上傳複製的實際路徑位置而調整!

這樣子設定完後,你的就可以使用recapthca來保護你的joomla 1.5後台

2012年1月15日 星期日

word 2007如何用掃描器直接掃描圖片到word裡?

首先在word的「插入」頁籤裡選擇如圖示的美工圖案。

image

接著會在工作區的右邊看到如下圖紅色箭頭所指之區域,然後選擇所指的「多媒體藝廊」。

image

接著會跳出如下圖之工作視窗,然後依下圖中紅色箭頭所指之步驟,先後選擇「檔案」、「新增多媒體項目到多媒體藝廊」、「從掃描器或照相機」。

image

會跳出如下圖之對話框!然後選擇你的掃描器(你的會與我的不同),然後選擇「自訂插入」選項!(這樣才能設定你要掃描的區域!)

image

接著往下會跳出你平時使用你的掃描器的程式,而你也就只要就你平日的用法來操作它即可!這幫我先選擇預覽!

image

預覽完後,我再設定所要掃描的範圍!

image

接著設定完範圍後,我才點選正式掃描!

image

在你掃描完圖像後,你會看到所掃的圖片已進到「多媒體藝廊」裡了!

接著在你要插入要word的圖片上按滑鼠右鍵,選擇其中的「複製」選擇!

image

再到word裡按滑鼠右鍵,選擇貼上,這樣,你掃描的圖片就插入到word 2007裡了!

image

2012年1月8日 星期日

點將家卡巧系列如何升級?

首先到其網站上下載最新的系統,接著將下載之壓縮檔解壓縮,將所有檔案燒在一塊光碟片裡,再依說明書裡指示的方式更新即可!

2012年1月7日 星期六

php已安裝已起動,mysql已安裝已起動,httpd已起動,但到web伺服器查看網頁時,卻說你還沒裝mysql伺服器?

會遇到這樣的現象,可能是你的php-mysql module還沒安裝,
可以
yum -y install php-mysql
來安裝。

php(mysql)上傳限製之設定

用 root 身分編輯 /etc/php.ini , 修改以下資訊:
max_execution_time = 300 ; //每個 script 執行時間上限, 單位是秒.
max_input_time = 300 ; //每個 script 處理輸入資料可用時間上限, 單位是秒.
memory_limit = 999M ; //每個執行中的 script 最多可使用的系統記憶體資源.
post_max_size = 800M ; //PHP 能夠接受發表文章的容量上限.
file_uploads = On ; //這個不用改, 安裝完就是 On 了, 請確定你的也是 On.
upload_max_filesize = 800M ; //允許上傳檔案的最大容量.
default_socket_timeout = 300; //Socket 無回應斷線時間上限.
mysql.connect_timeout = -1 ; //MYSQL 無回應斷線時間上限, -1 代表永遠等下去.

memory_limit > post_max_size > upload_max_size
如果你打算讓你的系統能夠上傳更大的檔案, 可以自行增加某些數值.
但設定過大的值, 不保證系統的穩定性.


有些數值有相互關係, 例如, memory_limit 必須大於 upload_max_filesize 與 post_max_size.

2012年1月6日 星期五

linux 如何關掉SELINUX?

關掉SELINUX,在/etc/selinux/config 設定檔如下;
/etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=Disabled  #這樣就把SELINUX伺服器關掉了,請重新開機系統;
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted
如果只要關掉selinux而不想重新開機,可以直接下如下指令:setenforce 0

2012年1月5日 星期四

我將原來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更新到最新的版本

接著安裝webmin

接著將原系統內之httpd.conf與iptables複製到新的系統內

接著開啟/etc/fstab將最底部加上下列兩行(使系統開機時自動掛載硬碟到/var/www/g2data與/var/www/html)

/dev/sdc1  /var/www/g2data  ext3  nosuid,noexec,nodev  0  0
/dev/sdb1  /var/www/html  ext3  nosuid,noexec,nodev  0  0

再在系統裡安裝ffmpeg與MPlayer及MEncoder(方法請看這篇文章:centos 安裝ffmpeg 及 mplayer mencoder)

還要將原先執行自動備份之contra…的檔案複製到目的地,如此才能接續原先的自動備份功能!

另外/home/http_user這個資料夾整個拷備到新系統的相對位置。

/var底下有幾個自己寫的幾個簡單的script也要拷備到相對位置!

其間會遇到防火牆設定的問題,我必須將舊主機的防火牆設定檔拷回新主機,新主機的senlinux也必須關掉!

然而在重新安裝完後,我遇到了ostube亂碼的問題,也就是在phpMyadmin裡看檔案資料都可以正常觀看中文,如下圖

image

但當我到ostube網站觀看資料時,卻出現如下圖的亂碼?

image

上網找了半天沒有看到像我這樣的問題,但卻有看到有提到網站看沒問題到資料庫端看會出現亂碼的例子,如是我就試著做看看將(資料來源:阿杰老師的 osTube 實驗室

開啟程式 

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;
       }

也就解決了我ostbue亂碼的問題了!真高興!

image

2012年1月4日 星期三

centos 安裝ffmpeg 及 mplayer mencoder

Installing FFmpeg, MPlayer and MEncoder on CPanel and Centos 6 on Hyper-V
Posted in Linux Server, Virtual Machine Manager | 5 Comments | 1,108 views | 03/10/2011 13:52
You need FFmpeg, MPlayer and MEncoder for video processing. I’ll show you how to install and configure it on Hyper-V.
I’ve already posted couple of articles about CentOS 6 installation on Hyper-V, so I won’t mention about that again.
You can see CentOS 6 installation on Hyper-V at the following posts:
So I assume you have a CentOS 6 with Hyper-V LIS v3.1. So lets continue with our installation.
First, we need to install RPMforge repository on CentOS 6.
1. Install the DAG GPG key.
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt


2. Download RPMforge-release package.
cd /home
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm (if your server x86)
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

3. Verify the RPMforge-release package you have downloaded.
rpm -K rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

4. Install the RPMforge-release package.
rpm -i rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

5. Now we can install FFmpeg, MPlayer and MEncoder.
yum install ffmpeg ffmpeg-devel mplayer mencoder

6. You may get this error when you try to install components.
Requires: perl-SGMLSpm >= 1.03ii

7. Download perl-SGMLSpm package to CentOS.
wget http://ftp.twaren.net/Linux/Scientific/41/i386/SL/RPMS/perl-SGMLSpm-1.03ii-14.noarch.rpm

8. perl-SGMLSpm may require OpenJade.

9. Let’s install openjade on CentOS.
yum install openjade

10. Try re-install perl-SGMLSpm.
rpm -ivh perl-SGMLSpm-1.03ii-14.noarch.rpm

11. After perl-SGMLSpm installation, you can continue to install FFmpeg, MPlayer and MEncoder.
yum install ffmpeg ffmpeg-devel mplayer mencoder

12. Now, you can test your ffmpeg installation.
ffmpeg -v

If you see same results on your server, it means your ffmpeg is ready.