python - Apache - 部署 Django 应用程序时出现错误 403 Forbidden
问题描述
我正在尝试在 Apache 中部署我的 Django 应用程序,但这是不可能的。当我输入网址时,它显示 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 文件夹权限。
推荐阅读
- amazon-web-services - 从具有公共 IP 地址的 VPC EC2 实例到同一区域中的 S3 存储桶的流量是否保证保留在 Amazon 的网络中?
- c# - 获取范围的绝对地址
- c++ - 从 C++ 中的流缓冲区初始化 Magick++
- django - 添加 Https 后,静态文件在 django-admin 中不起作用 - Django
- sql - SQL - 如何使用 sql 对一个查询的输出进行分组?
- typo3 - 如何使用 TYPO3 9.5 生成和解析自定义 URL
- vue.js - 使用 vue-test-utils 测试两个不同的点击事件
- python - 如何从熊猫列名中去除撇号
- python - 使用openpyxl模块在python中取消合并_cell
- r - 从 Rmarkdown 创建的 Beamer 幻灯片的降价表对齐