Ubuntu
Apache2:為什麼我會收到 403 Forbidden 錯誤?
這幾天我一直在搞砸:(
為什麼我在 example.com/contact 上收到 403 Forbidden 錯誤?
這是文件/文件夾權限、Apache 使用者、虛擬主機還是 Python 問題?
我正在嘗試在 /contact 上執行 Django 應用程序,但第一個問題是 403 錯誤。
- 我正在執行 Ubuntu 20.04.3 LTS
- Apache 2.4.41 已安裝並正在執行
- 安裝了 Python 3.8 和 Django
- libapache2-mod-wsgi-py3 已安裝並啟用
apachectl configtest
語法OK- 所有文件 chown 到
www-data:www-data
- 目錄 chmod +x
- example.com/index.html 有效
/var/log/apache2/access.log
是空的
/var/log/apache2/error.log
包含:$$ mpm_prefork:notice $$ $$ pid 69090 $$AH00163:Apache/2.4.41 (Ubuntu) OpenSSL/1.1.1k mod_wsgi/4.6.8 Python/3.8 已配置——恢復正常操作 $$ core:notice $$ $$ pid 69090 $$AH00094:命令行:’/usr/sbin/apache2'
根目錄下的 .htaccess 文件有
RewriteEngine on ServerSignature Off Options All -Indexes
這是我的 public_html 文件結構:
/etc/apache2/sites-available/default-ssl.conf:
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> Alias /static /var/www/html/example.com/public_html/contact/static Alias /media /var/www/html/example.com/public_html/contact/media <Directory /var/www/html/example.com/public_html/contact/static> Require all granted </Directory> <Directory /var/www/html/example.com/public_html/contact/media> Require all granted </Directory> WSGIScriptAlias /contact/contact /var/www/html/example.com/public_html/contact/contact/wsgi.py WSGIDaemonProcess contact python-home=/var/www/html/example.com/public_html/contact/contact WSGIProcessGroup contact WSGISocketPrefix run/wsgi <Directory /var/www/html/example.com/public_html/contact/contact> <Files wsgi.py> Require all granted AllowOverride None Allow from all </Files> </Directory> </VirtualHost> </IfModule>
當目錄中沒有 Indexdocument 時,Apache httpd 無法顯示任何內容。Apache 的典型替代方法是顯示目錄列表,已通過在選項中設置**-**索引來禁用。