2012年9月18日 星期二

ASUS RT-N16 改機記錄 (tomato + lighthttpd + mysql)


最近買了一台 asus rt-n16 的無線分享器
已經刷機改成 TOMATO 韌體

改機網路上已經很多介紹,小橘就不分享了。

改機的好處是,可以離線抓bt、 可以裝一些有的沒有的功能

以下就來介紹如何在 RT-N16上裝上 lighttpd+MySQL

首先剛裝刷完機你應該還沒有裝上 ipkg 的套件管理軟體
你可能需要接上 usb 隨身碟、隨身硬碟,
讓你有額外的空間可以安裝軟體

如果你插上隨身硬碟時,你的硬碟可能會安排在
/dev/sda  or  /dev/sdb

這裡你必須將你要當成 opt 軟體安裝目錄的磁區掛上
您可以參考這個網址:
http://tomatousb.org/tut:optware-installation



或直接看小橘的方法
小橘是將 隨身硬碟分割成 3個磁區

/dev/sda1  分割成 1024M  當成optware軟體要安裝的區域  我格式化成 ext3
/dev/sda2  分割成 128M   這裡我等會打算當成 swap
/dev/sda3  切割成剩餘的空間, 這裡我打算當成 rt-n16 離線bt的磁區 格式化成 NTFS

也許有些人會好奇,我怎麼分割、如何格式化成不同的檔案系統呢?
其實我是先在 windows上利用內建的工具將硬碟先切成3個磁區、
第一、第二 磁區只切割,不在windows格式化。
地三個磁區,切割。並在windows格式化成ntfs

然後將隨身硬碟接上 rt-n16
並使用ssh登入

執行
#  mkfs.ext3 -L optware /dev/sda1
如此可以將 sda1 格式化成 ext3 的格式
之後將其掛載起來
# mount /dev/sda1 /opt

也可以在tomato 管理介面中
 Administration » Scripts » Init 中填入
echo "LABEL=optware /opt ext3 defaults 1 1" >> /etc/fstab

這樣以後重開機時,會將標籤為 optware 的磁區自動掛載起來。

等空間準備好後,就可以開始安裝optware套件了

#wget http://tomatousb.org/local--files/tut:optware-installation/optware-install.sh -O - | tr -d '\r' > /tmp/optware-install.sh
#chmod +x /tmp/optware-install.sh
#sh /tmp/optware-install.sh

執行完上述3個指令後,optware 應該已經安裝完成了
您可以試著執行
#ipkg
來看看是否有安裝好,剛剛所裝的軟體應該都安裝在  /opt 目錄下
接下來我們安裝 busybox 套件

# /opt/bin/ipkg install busybox

@幫您的rt-n16 準備更多的記憶體
由於 rt-n16 的記憶體才 128m
要執行我們等會要安裝的軟體,其實是有點不足的
所以我們可以增加一些swap的空間,避免安裝、執行的過程中程式因記憶體空間不足而發生錯誤
先格式化我們剛剛準備的 /dev/sda2 磁區
#/opt/bin/busybox mkswap /dev/sda2

然後將其掛載上去
#/opt/bin/busybox swapon /dev/sda2

成功之後,你會在TOMATO 的管理介面上看到,你多了128m的swap空間


@開始安裝 lighthttpd

 #/opt/bin/ipkg install libstdc++
 #/opt/bin/ipkg install php php-fcgi
 #/opt/bin/ipkg install lighttpd
 #/opt/bin/ipkg install mysql
 #/opt/bin/ipkg install php-mysql
以下非必要 
#/opt/bin/ipkg install php-gd                   //增加php處圖形的能力
#/opt/bin/ipkg install php-mbstring         //增加php雙字元處理能力
#/opt/bin/ipkg install phpmyadmin         //安裝 phpmyadmin mysql 管理套件


@起動MySQL  變更預設密碼
#/opt/etc/init.d/S70mysqld start           //啟動  
#/opt/bin/mysqladmin -u root password 12345678   //變更root預設密碼為 12345678  

@設定 lighttpd.conf

 修改lighttpd.conf,增加php的處理能力
 #vi /opt/etc/lighttpd/lighttpd.conf
找到
1.   server.modules 中把 "mod_fastcgi" 前面的"#" 去掉
                           
2.  預設的啟動 port 為 8081  如果不喜歡,可以改成自己喜歡的port
     ex: server.port  = 80

3.  找到 server.event-handler
     並將其值修改為    server.event-handler = "poll"

改完後將  lighttpd.conf  存檔
並將 lighttpd 停止
#/opt/etc/init.d/S80lighttpd stop
將其重新啟動
#/opt/etc/init.d/S80lighttpd start

web server 預設的文件目錄為    /opt/share/www
你可以試著新增一個測試的 index.php 在
#vi /opt/share/www/index.php

內容為



接著試試看連線到你rt-n16的lan段的ip
ex: http://192.168.1.1:8081/
看看能不能看到東西囉,
如果有應該能看到 phpinfo() 專屬的頁面

如果失敗,你可以看看 
/opt/var/log/lighttpd/error.log  內有沒有什麼錯誤的訊息

如果想讓外網端也可以連接的上
可以直接在 console 上打
#iptables -I INPUT 1 -p tcp --dport 8081 -j ACCEPT

好啦,祝大家成功囉!
    
  

2 則留言:

lin 提到...

你好 想請問
更改 config之後
server start出現

Cannot load plugin mod_fastcgi more than once, please fix your config (we may not accept such configs in future releases
要怎麼處理呢..

Ming Tsay 提到...

to lin:
依照小弟的推測應該是mod_fastcgi的設定重複了

檢查設定檔案裡面是不是有出現一個以上的mod_fastcgi
或是你可以先試試看把#註解放回去