使用mod_wsgi运行django应用时遇到问题。
这是日志消息
[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Python home /var/www/myproject/myenv.
[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Initializing Python.
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
在检查SO中的其他问题以及在mod_wsgi的github页面上时,解决此问题的方法是使配置指向环境。
在这一点上,我确定我将python home设置指向了正确的环境路径
我还执行了sys.prefix
,它确实指向/var/www/myproject/myenv
我还确定我使用了正确的python版本来构建mod_wsgi并为我的项目创建virtualenv。
我也能够运行pip install -r requirements.txt
。
这是我的配置文件
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
WSGIRestrictEmbedded On
WSGIPythonHome /var/www/myproject/myenv
WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py process-group=sgcdjango.com
WSGIDaemonProcess sgcdjango.com python-home=/var/www/myproject/myenv
WSGIProcessGroup myapp.com
WSGIApplicationGroup %{GLOBAL}
<Directory /var/www/myproject/myapp/>
<Files wsgi.py>
Allow from all
Require all granted
</Files>
</Directory>
Alias /static/ /var/www/myproject/static/
<Directory /var/www/myproject/static>
Require all granted
</Directory>