Lighttpd、Python、MySQLdb Python 模块和权限

Lighttpd、Python、MySQLdb Python 模块和权限

最近重启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,

相关内容