使用pyenv虚拟环境的mod-wsgi无法识别Python-Home

时间:2021-04-01 15:14:50

标签: django apache2 mod-wsgi

尝试在服务器上使用 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 参数。我在这里做错了什么?

0 个答案:

没有答案