尝试在服务器上使用 Apache2 配置 mod-wsgi 时出现以下错误。我已经按照我的虚拟环境中的文档安装并设置了 mod-wsgi,然后设置了 apache2 site.conf,但是我无法让服务器做出响应。检查 apache2/error.log 我有一长串如下所示的错误列表。不知道去哪里或做什么,因为根据我所阅读的内容,所有配置看起来都应该是这样。
Current thread 0x00007f1b39a8cbc0 (most recent call first):
<no Python frame>
Python path configuration:
PYTHONHOME = (not set)
PYTHONPATH = (not set)
program name = '/var/www/virtualenvs/something-serv-SrXEIUxH-py3.8/bin/python'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = '/var/www/virtualenvs/something-serv-SrXEIUxH-py3.8/bin/python'
sys.base_prefix = '/root/.pyenv/versions/3.8.8'
sys.base_exec_prefix = '/root/.pyenv/versions/3.8.8'
sys.executable = '/var/www/virtualenvs/something-serv-SrXEIUxH-py3.8/bin/python'
sys.prefix = '/root/.pyenv/versions/3.8.8'
sys.exec_prefix = '/root/.pyenv/versions/3.8.8'
sys.path = [
'/root/.pyenv/versions/3.8.8/lib/python38.zip',
'/root/.pyenv/versions/3.8.8/lib/python3.8',
'/root/.pyenv/versions/3.8.8/lib/lib-dynload',
]
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
我的网站配置是:
<VirtualHost *:80>
ServerAdmin webmaster@something.com
ServerName something.com
ServerAlias www.something.com
DocumentRoot /var/www/something
LoadModule wsgi_module "/var/www/virtualenvs/something-serv-SrXEIUxH-py3.8/lib/python3.8/site-packages/mod_wsgi/server/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so"
WSGIDaemonProcess something python-home=/var/www/virtualenvs/something-serv-SrXEIUxH-py3.8 python-path=/var/www/something
WSGIProcessGroup something
WSGIScriptAlias / /var/www/something/core/wsgi.py
Alias /robots.txt /var/www/something/static/robots.txt
Alias /favicon.ico /var/www/something/static/favicon.ico
Alias /media/ /var/www/something/media/
Alias /static/ /var/www/something/static/
<Directory /var/www/something/static>
Require all granted
</Directory>
<Directory /var/www/something/media>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/something/core/wsgi.py
<Directory /var/www/something/core>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.something.com [OR]
RewriteCond %{SERVER_NAME} =something.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
由于某种原因无法识别来自 site.conf 文件的 python-home 和 python-path 参数。我在这里做错了什么?