Apache 應用程式上的 Django mod_wsgi在 Ubuntu 20.04 和以前的版本中使用下面提到的配置可以正常作業,但是當我在 Ubuntu 22.04 中進行相同的配置時,它會得到403 Forbidden error。和Permission denied: mod_wsgi在錯誤日志中。
我嘗試更改所有檔案的權限,但它不起作用,
阿帕奇配置:
<VirtualHost *:80>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /home/ubuntu/mydjango/mydjango>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
alias /static /home/ubuntu/mydjango/static
<Directory /home/ubuntu/mydjango/static>
Require all granted
</Directory>
WSGIDaemonProcess myapp python-home=/home/ubuntu/mydjango/venv python-path=/home/ubuntu/mydjango
WSGIProcessGroup myapp
WSGIScriptAlias / /home/ubuntu/mydjango/mydjango/wsgi.py
</VirtualHost>
阿帕奇錯誤日志:
Current thread 0x00007fb606719780 (most recent call first):
<no Python frame>
[Sun Jun 05 05:59:07.594727 2022] [wsgi:warn] [pid 37044:tid 140419768883072] (13)Permission denied: mod_wsgi (pid=37044): Unable to stat Python home /home/ubuntu/mydjango/venv. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
Python path configuration:
PYTHONHOME = '/home/ubuntu/mydjango/venv'
PYTHONPATH = (not set)
program name = 'python3'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = '/usr/bin/python3'
sys.base_prefix = '/home/ubuntu/mydjango/venv'
sys.base_exec_prefix = '/home/ubuntu/mydjango/venv'
sys.platlibdir = 'lib'
sys.executable = '/usr/bin/python3'
sys.prefix = '/home/ubuntu/mydjango/venv'
sys.exec_prefix = '/home/ubuntu/mydjango/venv'
sys.path = [
'/home/ubuntu/mydjango/venv/lib/python310.zip',
'/home/ubuntu/mydjango/venv/lib/python3.10',
'/home/ubuntu/mydjango/venv/lib/python3.10/lib-dynload',
]
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'
uj5u.com熱心網友回復:
默認情況下,Apache2 以www-data沒有主目錄權限(讀取/執行)的用戶身份運行。因此,您還應該在主目錄上設定正確的權限:
sudo chmod 755 /home/ubuntu
或者,您可以將專案放入/var/www默認情況下可由“其他人”讀取/可執行的例如,以便 Apache2 可以從那里運行專案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/490500.html
標籤:Python django 阿帕奇 ubuntu mod-wsgi
