小米路由折騰指南(六)

我在想這個(gè)系列怎么才算完結(jié)呢许布?我覺(jué)得是當(dāng)我覺(jué)得這個(gè)小米路由器無(wú)論如何也壓榨不出新的功能和價(jià)值讓我覺(jué)得幸福了聂使,我就讓他完結(jié)趣席。

這次主要想給路由器升級(jí)兩個(gè)功能粮彤。

  1. 增加 aria2 下載功能
  2. 增加 Nginx + Mysql + PHP 的整套環(huán)境

原因是方便遠(yuǎn)程下載根穷,另外可以把路由器當(dāng)做一個(gè)開(kāi)發(fā)設(shè)備使用。

Aria2

Aria2是一個(gè)類(lèi)似迅雷的下載工具导坟,但是不同與迅雷的是他不會(huì)上傳你硬盤(pán)的資料屿良,Aria2 支持多協(xié)議、多來(lái)源下載(HTTP/HTTPS惫周、FTP尘惧、BitTorrent、Metalink)递递,不喜歡迅雷的可以嘗試喷橙。

在 Tomato 上使用 Aria2比較簡(jiǎn)單,前面我們已經(jīng)掛載好硬盤(pán)并且安裝好了 opkg 我們只要使用 opkg 安裝 Aria2就可以了登舞。

opkg install aria2

安裝好了之前贰逾,可以使用如下命令啟動(dòng)

aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D

但是這個(gè)啟動(dòng)方法并不太好,我推薦使用配置文件的方式啟動(dòng)菠秒,一次配置終生受益而且修改方便疙剑!下面重點(diǎn)講一下配置文件啟動(dòng)的方式。

首先我們新建兩個(gè)文件aria2.conf,aria2.session這兩個(gè)文件一個(gè)是配置文件,另一個(gè)是下載的信息文件可以方便斷點(diǎn)續(xù)傳言缤。我們分別放在一個(gè)相同目錄下嚼蚀,比如/tmp/mnt/sda/

然后是把下面內(nèi)容填入****aria2.conf****

## `#`開(kāi)頭為注釋內(nèi)容, 選項(xiàng)都有相應(yīng)的注釋說(shuō)明, 根據(jù)需要修改 ##
## 被注釋的選項(xiàng)填寫(xiě)的是默認(rèn)值, 建議在需要修改時(shí)再取消注釋  ##
## 如果出現(xiàn)`Initializing EpollEventPoll failed.`之類(lèi)的
## 錯(cuò)誤提示, 可以取消event-poll選項(xiàng)的注釋                  ##

## 文件保存相關(guān) ##

# 文件的保存路徑(可使用絕對(duì)路徑或相對(duì)路徑), 默認(rèn): 當(dāng)前啟動(dòng)位置
dir=Aria2Data
# 啟用磁盤(pán)緩存, 0為禁用緩存, 需1.16以上版本, 默認(rèn):16M
disk-cache=32M
# 文件預(yù)分配方式, 能有效降低磁盤(pán)碎片, 默認(rèn):prealloc
# 預(yù)分配所需時(shí)間: none < falloc ? trunc < prealloc
# falloc和trunc則需要文件系統(tǒng)和內(nèi)核支持, NTFS建議使用falloc, EXT3/4建議trunc
file-allocation=falloc
# 斷點(diǎn)續(xù)傳
continue=true

## 下載連接相關(guān) ##

# 最大同時(shí)下載任務(wù)數(shù), 運(yùn)行時(shí)可修改, 默認(rèn):5
max-concurrent-downloads=5
# 同一服務(wù)器連接數(shù), 添加時(shí)可指定, 默認(rèn):1
max-connection-per-server=5
# 最小文件分片大小, 添加時(shí)可指定, 取值范圍1M -1024M, 默認(rèn):20M
# 假定size=10M, 文件為20MiB 則使用兩個(gè)來(lái)源下載; 文件為15MiB 則使用一個(gè)來(lái)源下載
min-split-size=10M
# 單個(gè)任務(wù)最大線(xiàn)程數(shù), 添加時(shí)可指定, 默認(rèn):5
split=5
# 整體下載速度限制, 運(yùn)行時(shí)可修改, 默認(rèn):0
#max-overall-download-limit=0
# 單個(gè)任務(wù)下載速度限制, 默認(rèn):0
#max-download-limit=0
# 整體上傳速度限制, 運(yùn)行時(shí)可修改, 默認(rèn):0
#max-overall-upload-limit=0
# 單個(gè)任務(wù)上傳速度限制, 默認(rèn):0
#max-upload-limit=0
# 禁用IPv6, 默認(rèn):false
disable-ipv6=true

## 進(jìn)度保存相關(guān) ##

# 從會(huì)話(huà)文件中讀取下載任務(wù)
input-file=/tmp/mnt/sda/aria2.session
# 在Aria2退出時(shí)保存`錯(cuò)誤/未完成`的下載任務(wù)到會(huì)話(huà)文件
save-session=/tmp/mnt/sda/aria2.session
# 定時(shí)保存會(huì)話(huà), 0為退出時(shí)才保存, 需1.16.1以上版本, 默認(rèn):0
save-session-interval=60

## RPC相關(guān)設(shè)置 ##

# 啟用RPC, 默認(rèn):false
enable-rpc=true
# 允許所有來(lái)源, 默認(rèn):false
rpc-allow-origin-all=true
# 允許非外部訪(fǎng)問(wèn), 默認(rèn):false
rpc-listen-all=true
# 事件輪詢(xún)方式, 取值:[epoll, kqueue, port, poll, select], 不同系統(tǒng)默認(rèn)值不同
#event-poll=select
# RPC監(jiān)聽(tīng)端口, 端口被占用時(shí)可以修改, 默認(rèn):6800
#rpc-listen-port=6800

## BT/PT下載相關(guān) ##

# 當(dāng)下載的是一個(gè)種子(以.torrent結(jié)尾)時(shí), 自動(dòng)開(kāi)始BT任務(wù), 默認(rèn):true
#follow-torrent=true
# BT監(jiān)聽(tīng)端口, 當(dāng)端口被屏蔽時(shí)使用, 默認(rèn):6881-6999
listen-port=51413
# 單個(gè)種子最大連接數(shù), 默認(rèn):55
#bt-max-peers=55
# 打開(kāi)DHT功能, PT需要禁用, 默認(rèn):true
enable-dht=false
# 打開(kāi)IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT網(wǎng)絡(luò)監(jiān)聽(tīng)端口, 默認(rèn):6881-6999
#dht-listen-port=6881-6999
# 本地節(jié)點(diǎn)查找, PT需要禁用, 默認(rèn):false
#bt-enable-lpd=false
# 種子交換, PT需要禁用, 默認(rèn):true
enable-peer-exchange=false
# 每個(gè)種子限速, 對(duì)少種的PT很有用, 默認(rèn):50K
#bt-request-peer-speed-limit=50K
# 客戶(hù)端偽裝, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 當(dāng)種子的分享率達(dá)到這個(gè)數(shù)時(shí), 自動(dòng)停止做種, 0為一直做種, 默認(rèn):1.0
seed-ratio=0
# 強(qiáng)制保存會(huì)話(huà), 話(huà)即使任務(wù)已經(jīng)完成, 默認(rèn):false
# 較新的版本開(kāi)啟后會(huì)在任務(wù)完成后依然保留.aria2文件
#force-save=false
# BT校驗(yàn)相關(guān), 默認(rèn):true
#bt-hash-check-seed=true
# 繼續(xù)之前的BT任務(wù)時(shí), 無(wú)需再次校驗(yàn), 默認(rèn):false
bt-seed-unverified=true
# 保存磁力鏈接元數(shù)據(jù)為種子文件(.torrent文件), 默認(rèn):false
bt-save-metadata=true

如果你有特別的需求可以根據(jù)上面的說(shuō)明修改參數(shù)。

然后使用aria2c --conf-path=/tmp/mnt/sda/aria.conf -D啟動(dòng)即可轧简。

aria 目前沒(méi)有自帶的圖形界面驰坊,不過(guò)有人開(kāi)發(fā)過(guò)界面。

  1. webui-aria2
  2. YAAW

進(jìn)入后修改一下配置:

Paste_Image.png

替換為你的路由器 ip 即可哮独。

這樣你就可以使用 Aria2了。更多的方法可以參考以下內(nèi)容:

Aria2 源碼/程序下載
配置示例下載
Windows 懶人包下載

YAAW 搭配腳本
迅雷離線(xiàn)
Chrome Extension: ThunderLixianAssistant
UserScript: ThunderLixianExporter
旋風(fēng)離線(xiàn)
UserScript: XuanFengEx
UserScript: LixianExporter
百度網(wǎng)盤(pán)
Chrome Extension: BaiduExporter
Firefox Addons: BaiduExporter
UserScript: BaiduPanDownloadHelper
其他腳本
Chrome Extension: 添加到aria2

Nginx + Mysql + PHP

這套環(huán)境是比較標(biāo)準(zhǔn)的開(kāi)發(fā)環(huán)境察藐。Tomato 是可以完美支持這套環(huán)境的皮璧。下面講下如何配置安裝。
首先還是需要使用 opkg安裝一系列環(huán)境支持分飞。

opkg update

opkg install php5 php5-mod-gd php5-mod-session php5-mod-pdo php5-mod-pdo-mysql php5-mod-mysql php5-mod-mcrypt php5-mod-mbstring php5-fastcgi php5-cgi php5-mod-xml php5-mod-ctype php5-mod-curl php5-mod-exif php5-mod-ftp php5-mod-iconv php5-mod-json php5-mod-sockets php5-mod-sqlite3 php5-mod-tokenizer php5-mod-zip

以上組件可以選擇性安裝悴务,如果你的路由器存儲(chǔ)夠就一步到位,不夠的話(huà)就安裝****php5 php-cgi php-mod-mysql****

安裝以下必備組件譬猫。
opkg install mysql-server nginx spawn-fcgi zoneinfo-core zoneinfo-asia shadow-groupadd shadow-useradd

這樣就完成了所有的必備組件的安裝讯檐,后面就需要配置所有的內(nèi)容。

首先建立一個(gè) Nginx 的網(wǎng)站目錄并給他單開(kāi)一個(gè)用戶(hù)組 www染服。

mkdir /tmp/mnt/sda/www
groupadd www
useradd -g www www
chown -R www:www /tmp/mnt/sda/web

然后修改 Nginx 配置:

vi /opt/etc/nginx/nginx.conf

修改為:

user www www;
worker_processes 1;
#pid /var/run/nginx.pid;
#error_log /var/log/nginx_error.log;
events {
use epoll;
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
access_log off;

include vhost.conf;
}

添加****vhost.conf****文件:

vi /opt/etc/nginx/vhost.conf
內(nèi)容為:

server {
listen 80;
server_name localhost;
root /tmp/mnt/sda/web;
index index.html index.htm index.php default.php;
error_page 500 502 503 504 /50x.html;

location = /50x.html {
root html;
}

location ~* ^.+\.php(\/.*)*$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

修改****fastcgi_params****文件别洪,解決Nginx文件類(lèi)型錯(cuò)誤解析漏洞。
vi /opt/etc/nginx/fastcgi_params

if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

到這 Nginx 的配置就完成了柳刮!

接下來(lái)開(kāi)始配置 Mysql挖垛!

  1. 配置 Mysql
    創(chuàng)建默認(rèn)的數(shù)據(jù)庫(kù)
    /opt/bin/mysql_install_db --force
  2. 啟動(dòng)mysql
    /opt/etc/init.d/S70mysqld start
  3. 輸入如下命令創(chuàng)建mysql的密碼
    /opt/bin/mysqladmin -u root password xxxxxx
  4. 登陸數(shù)據(jù)庫(kù)
    mysql -u root -p

連接上mysql之后,創(chuàng)建數(shù)據(jù)庫(kù)。這樣數(shù)據(jù)庫(kù)也初始化配置完畢了秉颗。

最后是 PHP 的相關(guān)配置痢毒!

修改 ****php.ini****文件
vi /opt/etc/php.ini

做一下修改

short_open_tag = on #將該選項(xiàng)修改為 on
#doc_root = "/mnt/www" #將該選項(xiàng)注釋
#將以下選線(xiàn)注釋消除
extension=ctype.so
extension=curl.so
extension=gd.so
extension=mbstring.so
extension=mcrypt.so
extension=mysql.so
extension=pdo.so
extension=pdo_mysql.so
extension=session.so
extension=sockets.so
extension=tokenizer.so
extension=xml.so
#將一下選線(xiàn)注釋消除并修改為該值
[Date]
date.timezone = Asia/Shanghai

啟動(dòng)****spawn-fcgi****

/opt/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -f /opt/bin/php-cgi

啟動(dòng)****Nginx****
/opt/etc/init.d/S80nginx start

這樣整個(gè)配置就完成了!

為了驗(yàn)證是否成功蚕甥,進(jìn)入****/tmp/mnt/sda/web****目錄下面新建一個(gè)文件為****index.php****

echo "<?php phpinfo(); ?>" > index.php

然后在瀏覽器打開(kāi)你的路由器 ip 例如:192.168.1.1 如果顯示如下頁(yè)面表示一切運(yùn)行正常哪替!

Paste_Image.png

接下來(lái)就是開(kāi)始你的 『LNMP』學(xué)習(xí)之旅了!

尾聲

整個(gè)過(guò)程中 Mysql 的啟動(dòng)菇怀,踩了一個(gè)坑凭舶,Nginx 無(wú)法顯示 phpinfo 的信息是第二個(gè)坑。給出以下建議

  1. 不輸入mysql_install_db –force的話(huà)會(huì)報(bào)一個(gè)錯(cuò)誤
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/opt/var/run/mysqld.sock’
  2. 界面顯示403錯(cuò)誤請(qǐng)一定查詢(xún)目錄的權(quán)限是不是****www****敏释!
  3. 老的配置文件記得備份库快!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钥顽,隨后出現(xiàn)的幾起案子义屏,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闽铐,死亡現(xiàn)場(chǎng)離奇詭異蝶怔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)兄墅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)踢星,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人隙咸,你說(shuō)我怎么就攤上這事沐悦。” “怎么了五督?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵藏否,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我充包,道長(zhǎng)副签,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任基矮,我火速辦了婚禮淆储,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘家浇。我一直安慰自己本砰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布蓝谨。 她就那樣靜靜地躺著灌具,像睡著了一般。 火紅的嫁衣襯著肌膚如雪譬巫。 梳的紋絲不亂的頭發(fā)上咖楣,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音芦昔,去河邊找鬼诱贿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛咕缎,可吹牛的內(nèi)容都是我干的珠十。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼凭豪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼焙蹭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起嫂伞,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤孔厉,失蹤者是張志新(化名)和其女友劉穎拯钻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體撰豺,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粪般,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了污桦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亩歹。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凡橱,靈堂內(nèi)的尸體忽然破棺而出小作,到底是詐尸還是另有隱情,我是刑警寧澤梭纹,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布躲惰,位于F島的核電站,受9級(jí)特大地震影響变抽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氮块,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一绍载、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滔蝉,春花似錦击儡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至螃概,卻和暖如春矫夯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吊洼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工训貌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冒窍。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓递沪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親综液。 傳聞我的和親對(duì)象是個(gè)殘疾皇子款慨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成,其中谬莹,內(nèi)核的設(shè)計(jì)非常微小和簡(jiǎn)潔檩奠,完成的工作也非常簡(jiǎn)單...
    rosekissyou閱讀 10,209評(píng)論 5 124
  • 一桩了、配置防火墻,開(kāi)啟80端口笆凌、3306端口 CentOS 7.0默認(rèn)使用的是firewall作為防火墻圣猎,這里改為i...
    ArleyDu閱讀 2,086評(píng)論 0 0
  • 系統(tǒng)環(huán)境 所需軟件官方下載地址: 一、 安裝開(kāi)發(fā)包環(huán)境: 二乞而、 關(guān)閉iptables和Selinux(生產(chǎn)...
    莫名其妙的一生閱讀 1,300評(píng)論 0 4
  • php+mysql+apache+centos 編譯安裝 領(lǐng)導(dǎo)要求先保證php環(huán)境穩(wěn)定送悔,然后再去考慮其他,例如性能...
    dnaEMx閱讀 2,199評(píng)論 1 16
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 1,812評(píng)論 0 3