Apache - 部署 Django 应用程序时禁止错误 403
Apache - Error 403 Forbidden when deploying Django app
我正在尝试在 Apache 中部署我的 Django 应用程序,但这是不可能的。当我输入 url 时,它显示 403 Forbidden 并且没有任何反应。
我已经尝试观看了很多教程,但无法修复我的错误。我正在使用 CentOS 7.
这是我的 site.com.conf => /usr/local/apache/conf.d/vhost/myproject.com.conf
<VirtualHost myprojectIP:8181>
ServerName myproject.com
ServerAlias www.myproject.com
ServerAdmin myproject@myproject.com
DocumentRoot /var/www/html/myproject
UseCanonicalName Off
ScriptAlias /cgi-bin/ /home/admin/public_html/cgi-bin/
<IfModule mod_setenvif.c>
SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
</IfModule>
<IfModule mod_userdir.c>
UserDir disabled
UserDir enabled admin
</IfModule>
<IfModule mod_suexec.c>
SuexecUserGroup admin admin
</IfModule>
<IfModule mod_suphp.c>
suPHP_UserGroup admin admin
suPHP_ConfigPath /home/admin
</IfModule>
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
<Directory /var/www/html/myproject>
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
SSLRequireSSL
</Directory>
<Directory /var/www/html/venv>
Require all granted
</Directory>
Alias /static /var/www/html/myproject/templates/static
<Directory /home/admin/public_html/myproject/templates/static>
Require all granted
</Directory>
WSGIProcessGroup remesas
WSGIScriptAlias / /var/www/html/myproject/remesas/wsgi.py
</VirtualHost>
这是我的 site.com.ssl.conf => /usr/local/apache/conf.d/vhost/myproject.com.ssl.conf
<VirtualHost myprojectIP:8443>
ServerName myproject.com
ServerAlias www.myproject.com
ServerAdmin myproject@myproject.com
DocumentRoot /var/www/html/myproject
UseCanonicalName Off
ScriptAlias /cgi-bin/ /home/admin/public_html/cgi-bin/
#SSL CONFIGURE HERE
####################
<IfModule mod_userdir.c>
UserDir disabled
UserDir enabled admin
</IfModule>
<IfModule mod_suexec.c>
SuexecUserGroup admin admin
</IfModule>
<IfModule mod_suphp.c>
suPHP_UserGroup admin admin
suPHP_ConfigPath /home/admin
</IfModule>
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
<Directory /var/www/html/myproject>
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
SSLRequireSSL
</Directory>
<Directory /var/www/html/venv>
Require all granted
</Directory>
Alias /static /var/www/html/myproject/templates/static
<Directory /home/admin/public_html/myproject/templates/static>
Require all granted
</Directory>
WSGIDaemonProcess remesas python-path=/var/www/html/myproject:/var/www/html/venv/lib/python3.6/site-packages
WSGIProcessGroup remesas
WSGIScriptAlias / /var/www/html/myproject/remesas/wsgi.py
</VirtualHost>
在 /var/www/html 目录中部署应用程序是不安全的,因为它是默认的 apache 文件夹。检查您的 Apache 日志 (error.log) 和 Django 文件夹权限。
关于此有 2 个常见错误,检查这些:
- 文件或文件夹权限不正确
- 设置不正确
.htaccess 文件
检查您的 url 路径、权限和特权
我正在尝试在 Apache 中部署我的 Django 应用程序,但这是不可能的。当我输入 url 时,它显示 403 Forbidden 并且没有任何反应。
我已经尝试观看了很多教程,但无法修复我的错误。我正在使用 CentOS 7.
这是我的 site.com.conf => /usr/local/apache/conf.d/vhost/myproject.com.conf
<VirtualHost myprojectIP:8181>
ServerName myproject.com
ServerAlias www.myproject.com
ServerAdmin myproject@myproject.com
DocumentRoot /var/www/html/myproject
UseCanonicalName Off
ScriptAlias /cgi-bin/ /home/admin/public_html/cgi-bin/
<IfModule mod_setenvif.c>
SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
</IfModule>
<IfModule mod_userdir.c>
UserDir disabled
UserDir enabled admin
</IfModule>
<IfModule mod_suexec.c>
SuexecUserGroup admin admin
</IfModule>
<IfModule mod_suphp.c>
suPHP_UserGroup admin admin
suPHP_ConfigPath /home/admin
</IfModule>
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
<Directory /var/www/html/myproject>
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
SSLRequireSSL
</Directory>
<Directory /var/www/html/venv>
Require all granted
</Directory>
Alias /static /var/www/html/myproject/templates/static
<Directory /home/admin/public_html/myproject/templates/static>
Require all granted
</Directory>
WSGIProcessGroup remesas
WSGIScriptAlias / /var/www/html/myproject/remesas/wsgi.py
</VirtualHost>
这是我的 site.com.ssl.conf => /usr/local/apache/conf.d/vhost/myproject.com.ssl.conf
<VirtualHost myprojectIP:8443>
ServerName myproject.com
ServerAlias www.myproject.com
ServerAdmin myproject@myproject.com
DocumentRoot /var/www/html/myproject
UseCanonicalName Off
ScriptAlias /cgi-bin/ /home/admin/public_html/cgi-bin/
#SSL CONFIGURE HERE
####################
<IfModule mod_userdir.c>
UserDir disabled
UserDir enabled admin
</IfModule>
<IfModule mod_suexec.c>
SuexecUserGroup admin admin
</IfModule>
<IfModule mod_suphp.c>
suPHP_UserGroup admin admin
suPHP_ConfigPath /home/admin
</IfModule>
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
<Directory /var/www/html/myproject>
Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
SSLRequireSSL
</Directory>
<Directory /var/www/html/venv>
Require all granted
</Directory>
Alias /static /var/www/html/myproject/templates/static
<Directory /home/admin/public_html/myproject/templates/static>
Require all granted
</Directory>
WSGIDaemonProcess remesas python-path=/var/www/html/myproject:/var/www/html/venv/lib/python3.6/site-packages
WSGIProcessGroup remesas
WSGIScriptAlias / /var/www/html/myproject/remesas/wsgi.py
</VirtualHost>
在 /var/www/html 目录中部署应用程序是不安全的,因为它是默认的 apache 文件夹。检查您的 Apache 日志 (error.log) 和 Django 文件夹权限。
关于此有 2 个常见错误,检查这些:
- 文件或文件夹权限不正确
- 设置不正确 .htaccess 文件
检查您的 url 路径、权限和特权