|
openwrt/lede后台登陆显示Bad Gateway The process did not produce any response如何处理
检查日志: cat /var/log/messages | grep uhttpd
显示如下Mon Jul 11 13:42:14 2022 daemon.err uhttpd[16838]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:42:26 2022 daemon.err rtty: (net.c:136) getaddrinfo failed: Try again Mon Jul 11 13:42:32 2022 daemon.err uhttpd[16838]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:42:48 2022 daemon.err uhttpd[18794]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:42:49 2022 daemon.err uhttpd[18794]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:42:49 2022 daemon.err uhttpd[18794]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:42:56 2022 daemon.err uhttpd[18794]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:43:26 2022 daemon.err rtty: (net.c:136) getaddrinfo failed: Try again Mon Jul 11 13:43:43 2022 daemon.err uhttpd[18794]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:44:15 2022 daemon.err uhttpd[18795]: /usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#' Mon Jul 11 13:44:26 2022 daemon.err rtty: (net.c:136) getaddrinfo failed: Try again Mon Jul 11 13:44:45 2022 authpriv.info dropbear[9796]: Exit (root): Error reading: Connection reset by peer Mon Jul 11 13:44:49 2022 authpriv.info dropbear[8166]: Exit (root): Error reading: Connection reset by peer Mon Jul 11 13:45:26 2022 daemon.err rtty: (net.c:136) getaddrinfo failed: Try again root@5G-Router:~# cat /var/log/messages | grep uhttpd cat: can't open '/var/log/messages': No such file or directory root@5G-Router:~# uhttpd -d -f -h /www -r LEDE -x /cgi-bin -l /tmp/lua.socket -L /usr/lib/lua/uhttpd.so -n 3 -N 100 -R -p 0.0.0.0:80 -p [::]:80 -froot@5G-Router:~# cp /etc/config/uhttpd /etc/config/uhttpd.bak root@5G-Router:~# rm /etc/config/uhttpd root@5G-Router:~# /etc/init.d/uhttpd restart
从日志来看,主要问题是uhttpd无法正确解析/www/cgi-bin/luci文件,报错显示:/usr/bin/lua: /www/cgi-bin/luci:2: unexpected symbol near '#'
解决方法 1. 检查并修复 /www/cgi-bin/luci文件 cat /www/cgi-bin/luci
如果文件开头有 #或其他无效字符(如 Windows 换行符 ^M),需要修复:
vi /www/cgi-bin/luci
修改后的文件内容
#!/usr/bin/lua require "luci.cacheloader" require "luci.sgi.cgi" luci.dispatcher.indexcache = "/tmp/luci-indexcache" luci.sgi.cgi.run()
保存后,赋予执行权限: chmod +x /www/cgi-bin/luci
检查 uhttpd配置 由于你执行了: rm /etc/config/uhttpd /etc/init.d/uhttpd restart
uhttpd会重新生成默认配置,但可能需要手动调整: vi /etc/config/uhttpd
确保关键配置如下:
config uhttpd 'main' option listen_http '0.0.0.0:80' option listen_https '0.0.0.0:443' option home '/www' option rfc1918_filter '1' option max_requests '3' option max_connections '100' option cert '/etc/uhttpd.crt' option key '/etc/uhttpd.key' option cgi_prefix '/cgi-bin' option lua_prefix '/luci' option lua_handler '/usr/lib/lua/luci/sgi/uhttpd.lua' option script_timeout '60'
然后重启服务: /etc/init.d/uhttpd restart
检查 Lua 解释器是否正常 如果 /usr/bin/lua损坏或缺失,会导致解析失败: which lua
检查文件权限 确保 /www/cgi-bin/luci有可执行权限: chmod +x /www/cgi-bin/luci
检查日志 由于 /var/log/messages不存在,可以查看 syslog: logread | grep uhttpd终极方案:恢复出厂设置 如果以上方法无效,可以尝试 恢复出厂设置: firstboot && reboot 注意:这会清除所有配置!
手动启动 uhttpd 调试:
uhttpd -d -f -h /www -r LEDE -x /cgi-bin -l /tmp/lua.socket -L /usr/lib/lua/uhttpd.so -n 3 -N 100 -R -p 0.0.0.0:80 -p [::]:80
重置为默认配置:
rm /etc/config/uhttpd /etc/init.d/uhttpd restart
|