最近重启lighttpd
服务器后,我无法重新启动并运行它。我正在其上运行一个 python 构建的 API 服务,并依靠该web.py
模块来运行应用程序。
我在导入 Python 模块时遇到了困难。当我尝试使用 API 时,MySQLdb
该特定导入导致一切都出错并产生错误。500 error
最初,我认为这只是权限问题,因为我能够在从命令行运行 python 时导入模块。当我看到从命令行运行MySQLdb
有效时,我继续将模块的 Python 代码和 Python egg 的权限更改为 755。然而,这并没有解决问题。我不确定在这里发布什么最有帮助,所以我将包括一些配置设置和有关服务器的其他一般事实。
为了澄清起见,我能够Hello, World!
使用我的设置打印一条消息lighttpd
,并且还确认lighttpd
服务器正在使用正确的 Python 版本(即 1.7.3)。
MySQLDb Python 模块代码的位置:
/home/pythoninstall/MySQL-python-1.2.3c1
Python第三方模块/eggs的位置:
/opt/python2.7/lib/python2.7/站点包
Python 的 Lighttpd FastCGI 设置:
server.modules = ("mod_fastcgi","mod_accesslog","mod_rewrite", "mod_access", "mod_redirect", "mod_proxy")
server.document-root = "/home/OverLord/"
fastcgi.server = ( "/code.py" =>
(( "bin-environment" => (
"REAL_SCRIPT_NAME" => ""
),
"socket" => "/tmp/fastcgi.socket",
"bin-path" => "/opt/python2.7/bin/python /home/OverLord/code.py",
"check-local" => "disable",
"max-procs" => 1
))
)
任何想法都很好。我为此花了太多时间。谢谢!
答案1
FCGI 以某种方式更改了套接字的名称。您将其声明为:
"socket" => "/tmp/fastcgi.socket"
但它出错了:
request sent: 1154 on socket: unix:/tmp/fastcgi.socket-0
稍微抨击一下 google 就表明 php 人员在这方面遇到了很多麻烦。如果 FCGI 不断将 附加-0
到套接字名称然后发出错误,那么可能是时候深入研究 了wsgi
。
编辑:添加来自某人的配置他似乎已经解决了这个问题。将其用于套接字定义:
"socket" => "/tmp/php.socket" + var.PID,