ln -s ../../../feeds/packages/net/fcgiwrap/ fcgiwrap
本帖最后由 cjd6568358 于 2018-6-4 11:21 编辑 刚又把路由器重置重新操作了一遍流程,确认无误后整理了教程( 有人问为什么要把uhttpd换成nginx? 1、首先uhttpd运行缓慢 2、也有用lighttpd代替的,速度还可以但是他的反向代理只支持IP不支持域名 3、有想要在路由器上面建站的大多数用的是php,不想同时开启多个web服务器,nginx刚好可以满足我的一切需求 ) 使用nginx代替uhttpd 1、禁用uhttpd(防止安装nginx后自动运行出现端口冲突) /etc/init.d/uhttpd stop /etc/init.d/uhttpd disable 复制代码 2、安装依赖 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 复制代码 3、修改/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; } } 复制代码 4、启动spawn-fcgi(如需开机自动运行,可将命令添加到/etc/rc.local) /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/sbin/fcgiwrap -F 2 复制代码 5、启动nginx /etc/init.d/nginx enable /etc/init.d/nginx start 复制代码 6、移除uhttpd opkg remove uhttpd 复制代码 到了这一步就可以打开浏览器输入192.168.1.1正常访问luci管理页面了