我希望有人看到这个 -
我正在运行django-compressor,利用lessc设置来渲染/压缩文件中的CSS。它在从开发服务器调用时非常有效,但是当在apache + mod_wsgi下运行时,它始终返回错误。
为了调试这个,我运行了过滤器调用的确切命令作为www-data用户(在WSGIDaemonProcess指令中被定义为wsgi用户)并验证它是否正常工作,包括读写权限它正在操纵的文件。
我还攻击了该系统上压缩器/ filters / base.py中的django压缩器代码,似乎尝试调用的任何命令在proc.communicate()调用后得到的返回码为-6
我希望有人以前见过这个 - 或者它会响一些铃声。它在apache + mod_wsgi进程之外的这台机器上工作正常(即作为开发服务器运行进程)。我只是不清楚可能阻塞subprocess.Popen()调用的内容。
答案 0 :(得分:8)
您是偶然使用Python 2.7.2吗?
该版本的Python引入了一个错误,导致子解释器中的fork()失败:
http://bugs.python.org/issue13156
您必须通过设置:
强制WSGI应用程序在该过程的主Python解释器中运行WSGIApplicationGroup %{GLOBAL}
如果运行多个Django应用程序,您需要确保只有受影响的应用程序应用此配置指令,否则您将导致所有Django应用程序在一个解释器中运行,由于Django配置的工作方式,这是不可能的。