2008/04/06

在QNAP TS-209上安裝 lighttpd, fastcgi, perl ...

上一篇裝完SVN之後 又想把原來的apache換掉 換一個比較省資源的lighttpd
首先是官網終於將2.0版的Firmware釋出 目前是版本是2.0.1
就先將機器更新到最新版的Firmware 吧...

要安裝lighttpd前 首先要確定有安裝ipkg套件在 請參考上一篇或是官網的討論
接下來將套件列表更新後 就可以開始安裝了

ipkg update
ipkg install lighttpd
// 如果要支援php
ipkg install php-fcgi
// 如果要支援cgi
ipkg install perl
//如果要支援 sqlite
ipkg install sqlite2
ipkg install sqlite

接下來開始伺服器的設定 首先是lighttpd.conf
會放在 /opt/etc/lighttpd/lighttpd.conf 或是
/share/MD0_DATA/optware/opt/etc/lighttpd/lighttpd.conf (同一份檔案)
視需求將所需要的模組反註解 例如

"mod_alias","mod_rewrite","mod_simple_vhost","mod_cgi","mod_compress",

將下方server.document-root的部份指到網頁的跟目錄 設定好log的位址
以及修改port位址 如

server.port = 80

如果要支援cgi 加入

$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( ".pl" => "/opt/bin/perl" ,
".cgi" => "/opt/bin/perl" )
}

只要將cgi,pl檔案放在cgi-bin目錄中就可以執行了
其他模組的設定就請參考官方文件

接下來設定 fastcgi的模組 會放在/opt/etc/lighttpd/conf.d/10-php-fcgi.conf
基本上只要確定路徑正確就好 其他設定一樣參考官方文件 不改也可以
因為系統的效能很差 所以不建議把max-procs及PHP_FCGI_CHILDREN參數設太高 2到4就好

再來是php.ini文件 會在/opt/etc/php.ini
如果要支援sqlite請加入

extension=sqlite.so
extension=pdo_sqlite.so
extension=pdo.so

其他部份就依據需求設定

最後就啟動看看 看是否能運作

chroot /share/MD0_DATA/optware /opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf

如果剛剛port設為80 通常是不能運作的
要事先去把原始的Apache伺服器關閉
不過系統還會自動執行Qthttpd把port80給站住 所以還要在關掉Qthttpd

/etc/init.d/Qthttpd.sh stop

測試ok 網頁正常運作之後 就是要設定自動啟動啦

修改autorun.sh

mount /dev/mtdblock5 -t ext2 /tmp/config
cd /tmp/config
vim autorun.sh

在檔案最後加上

/etc/init.d/Qthttpd.sh stop
chroot /share/MD0_DATA/optware /opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf

最後離開

cd /
umount /tmp/config

還沒完 系統還定期去執行Qthttpd 所以要修改crontab
我的是放在/mnt/HDA_ROOT/.config/crontab
將第五行註解掉 如

#30 4 * * * /etc/init.d/Qthttpd.sh restart

來避免他自動執行 最後重開機 就大功告成


附註
如果要支援SSL通道 要先產生一把金鑰 如

// 自己signed自己的方式
openssl req -new -x509 -keyout xxx.pem -out xxx.pem -days 3650 -nodes

也可以參考其他網入上產生金鑰的方式
並在lighttpd設定中加入

$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.pemfile = "/path/xxx.pem"
}

不過443這一個port會被stunnel給站住 還要在修改stunnel.conf
通常會放在/mnt/HDA_ROOT/.config
將最下面的[https]中的accept更換port
這是給網頁設定用的SSL通道 (thttpd server)
如果不想用lighttpd的SSL也可以直接修改stunnel的設定
加一個[https2]的區塊編輯即可

最後
還要研究一下將系統原本的mysql加入php的支援當中
應該是要修改extension的位置就好
不過Lighttpd對於WebDav的支援似乎不太好 要加入SVN的支援還要在研究

結論
lighttpd真的是比apache快太多了 用的cpu跟記憶體也少 (跟LiteSpeed的比較)
雖然功能沒有apache那麼強 不過在這種小型NAS上也很夠用了
最後在裡面裝了一套使用SQLite作為資料庫的論壇PunBB 順利運作中^^
下次有空來試試Nginx 更高效率的httpd軟體

4 comments:

Calvin 提到...

您好!我也在ts209安裝了Imagemagick,但它的path是在哪呢,我安裝gallery2要用它丫!可以email我嗎?[email protected]

JoshuA 提到...

請問一下,看完你的文章,有些疑問,意思就是說修改掉可能重複port之後,lighttpd可以同時running HTTP和HTTPS嗎?

博凱 提到...

請問要怎麼在209上裝Imagemagick和Netpbm

Josh 提到...

lighttpd當然可同時run http與https
要注意的是原始httpd要關掉或是使用不同port

Imagemagickㄏ或是其他套件看看ipkg中有沒有吧 不然就上網抓source自己裝囉 愛裝哪就裝哪
目錄指定過去就可以用了
不過我現在也沒有TS-209可以玩了
有看官網有出了新版的OS 可能很多東西都不一樣了吧

 
Back to Top
This Site Power by JoStudio. Some Rights Reserved.