用web.py照着官网在服务器上搭好了后台。这次很奇怪地出现了一个Nginx 502 Bad Gateway的错误。
执行上面的kill `pgrep -f "python /path/to/www/index.py"`
会出现错误提示,可是启动脚本的时候明明是提示spawn-fcgi: child spawned successfully: PID: 32401
的信息的,然后还可以继续执行spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002
的脚本
,同样会提示成功。
原因是进程确实创建成功了,但是又马上终止了!!
这时用spawn-fcgi
的-n
选项就能看到错误信息了。原来是index.py里少了一行import os
,一开始就出错了,而不是访问某个具体地址时会报错。类似的情况在php下面也容易碰到,php的语法错导致php5-fpm一开启就死掉,用php5-fpm -e可以查看错误原因。
这里还要注意是否是按照官网上的步骤配置的web.py部署条件,有没有安装web.py, spawn-fcgi和flup,如果没有安装可以用sudo pip install web.py
,sudo apt-get install spawn-fcgi
,sudo apt-get install python-flup
(ubuntu下),没安装依赖也会导致同样的错误。
解决是google到这里的解决方案。