mod_wsgi和virtualenv - 无效的命令' WSGIPythonHome'

时间:2014-11-25 20:27:35

标签: python-2.7 virtualenv mod-wsgi

所需行为

我希望Apache使用mod_wsgi中安装的virtualenv,而不是依赖系统级安装的mod_wsgi。我假设这是可能的,因为这是我认为的virtualenv,即创建孤立的环境。

当前行为

环境:Linux Mint 17

sudo /etc/init.d/apache2 start

AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/000-default.conf:
Invalid command 'WSGIPythonHome', perhaps misspelled or defined by a module not included
in the server configuration
Action 'configtest' failed.

/etc/apache2/sites-enabled/000-default.conf

WSGIPythonHome /var/www/html/ENV
WSGIPythonPath /var/www/html:/var/www/html/ENV/lib/python2.7/site-packages
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    WSGIScriptAlias / /var/www/html/myapp/app.wsgi

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

我尝试过的事情

如果我在系统级通过Synaptic Package Manager安装mod_wsgi,那么一切都按预期工作。

如果我*在系统级通过Synaptic Package Manager卸载* mod_wsgi,只需依靠mod_wsgipip安装的virtualenv,我得到上面的错误。

我一直在指这个问题,但无法从中收集任何特定的解决方案:

https://code.google.com/p/modwsgi/wiki/VirtualEnvironments

1 个答案:

答案 0 :(得分:1)

经过反思,我现在猜测,mod_wsgi是一个Apache模块,它不可能在virtualenv内运行,就像Apache无法在{{1}内运行一样因此,virtualenv需要在系统级安装才能工作。

另见:

Can I run Apache, mod_wsgi and MongoDB within virtualenv?

这是我最终使用的配置:

<强> /etc/apache2/sites-enabled/000-default.conf

mod_wsgi