【发布时间】:2012-10-31 19:04:54
【问题描述】:
我正在阅读 lighttpd 中 mod_fastcgi 的文档,上面写着:
“bin-path”:本地 FastCGI 二进制文件的路径,如果没有本地 FastCGI 正在运行,则应启动该二进制文件
如果我想让 lighttpd 直接启动我的 fastcgi 进程,并且说进程是由 python 脚本创建的,该怎么办?像这样的:
# bang omitted... I need to use python from virtualenv
# File runfastcgi.py
import os
import sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "atc.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(['manage.py', 'runfcgi', ... ])
此外,我正在使用 virtualenv,并且我有办法从环境中导出所有路径,甚至是用于 virtualenv 的 python 解释器的路径......唯一的问题是,根据 mod_fastcgi 文档,我可以只将路径传递给 binary,所以,看来我做不到:
bin-path => (env.ATC_VIRTUALENV + 'bin/python' + ' ' + 'runfastcgi.py')
我错了吗?有没有要求 lighttpd 使用 virtualenv python 来执行自定义的 runfastcgi.py?
【问题讨论】:
-
这个问题似乎是题外话,因为它是关于服务器维护,而不是关于编程,它应该继续 Serverfault。
-
最好使用
from django.core.servers.fastcgi import runfastcgi和runfastcgi(["method=threaded", "daemonize=false"])而不是execute_from_command_line(['manage.py', 'runfcgi', ...])
标签: python django virtualenv fastcgi lighttpd