ln -s ../../../feeds/packages/net/fcgiwrap/ fcgiwrap
本帖最後由 cjd6568358 於 2018-6-4 11:21 編輯 剛又把路由器重置從新操做了一遍流程,確認無誤後整理了教程( 有人問爲何要把uhttpd換成nginx? 一、首先uhttpd運行緩慢 二、也有用lighttpd代替的,速度還能夠可是他的反向代理只支持IP不支持域名 三、有想要在路由器上面建站的大多數用的是php,不想同時開啓多個web服務器,nginx恰好能夠知足個人一切需求 ) 使用nginx代替uhttpd 一、禁用uhttpd(防止安裝nginx後自動運行出現端口衝突) /etc/init.d/uhttpd stop /etc/init.d/uhttpd disable 複製代碼 二、安裝依賴 opkg install libpcre nginx spawn-fcgi fcgi fcgiwrap 複製代碼 注意:nginx默認是不能夠直接執行cgi的(luci的運行方式就是cgi),可是能夠代理fcgi,因此這裏咱們須要用fcgiwrap來包裝下luci的cgi fcgiwrap運行依賴spawn-fcgi和fcgi,這兩個均可以在對應的安裝源找到,可是fcgiwrap官方源貌似沒有,須要編譯。這裏給出源代碼地址和編譯方式,各位有能力的能夠試試 fcgiwrap 在OpenWrt上移植fcgiwrap爲nginx提供cgi支持 我用的fcgiwrap版本恰好論壇裏有人編譯出來了,因此直接用的他的,平臺是MT7620,HG255D也可用 PS:這個版本的fcgiwrap整合了shell腳本,因此若是用了這個版本的第四步不須要了,改爲修改/etc/init.d/fcgiwrap start_service方法 start_service() { echo -e "Starting $NAME ..." #procd_set_param command $SPAWN_FCGI -u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -P $PIDFILE -F $FORK_NUM -f $DAEMON $SPAWN_FCGI -a 127.0.0.1 -p 9000 -f $DAEMON -F $FORK_NUM } 複製代碼 對應的啓動腳本 /etc/init.d/fcgiwrap start /etc/init.d/fcgiwrap restart 複製代碼 三、修改/etc/nginx/nginx.conf server { listen 80; server_name localhost; charset UTF-8; # access_log /tmp/access_80.log main; # error_log /tmp/error_80.log debug; autoindex on; root /www; location ~* /cgi-bin/luci.* { root /www; fastcgi_pass 127.0.0.1:9000; fastcgi_index /cgi-bin/luci; fastcgi_split_path_info (/cgi-bin/luci)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 複製代碼 四、啓動spawn-fcgi(如需開機自動運行,可將命令添加到/etc/rc.local) /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/sbin/fcgiwrap -F 2 複製代碼 五、啓動nginx /etc/init.d/nginx enable /etc/init.d/nginx start 複製代碼 六、移除uhttpd opkg remove uhttpd 複製代碼 到了這一步就能夠打開瀏覽器輸入192.168.1.1正常訪問luci管理頁面了