django web 服务器中的 403 禁止错误
Posted
技术标签:
【中文标题】django web 服务器中的 403 禁止错误【英文标题】:403 Forbidden Error in django web server 【发布时间】:2016-07-18 04:48:47 【问题描述】:我正在尝试在网络服务器上部署我的应用程序(带有 apache2 和 mod_wsgi 的 django)。但是我在运行网站时遇到了 403 禁止错误..(禁止 您无权访问此服务器上的 /。 Apache/2.4.7 (Ubuntu) 服务器位于 104.131.127.196 端口 80)。我的 Web 应用程序的结构如下所示:
CASINOVA
|-- Casinova
| |-- db.sqlite3
| |-- index.html
| |-- manage.py
| |-- casinova
| | |-- __init__.py
| | |-- __init__.pyc
| | |-- settings.py
| | |-- settings.pyc
| | |-- urls.py
| | |-- urls.pyc
| | |-- wsgi.py
| | `-- wsgi.pyc
| `-- static
sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
Alias /static /var/www/html/CASINOVA/Casinova/static/
<Directory /var/www/html/CASINOVA/Casinova/static>
Options Indexes FollowSymLinks Includes ExecCGI
Require all granted
</Directory>
<Directory /var/www/html/CASINOVA/Casinova>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess Casinova python-path=/var/www/html/CASINOVA/Casinova:/var/www/html/CASINOVA/venv/Casinova/lib/python2.7/si$
WSGIProcessGroup Casinova
WSGIScriptAlias / /var/www/html/CASINOVA/Casinova/casinova/wsgi.py
ServerName 0.0.0.0
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/CASINOVA/Casinova
ErrorLog $APACHE_LOG_DIR/error.log
CustomLog $APACHE_LOG_DIR/access.log combined
AddHandler cgi-script .py
sudo vi /etc/apache2/apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
ServerName mydomain.com
vi /etc/hosts.py
127.0.0.1 localhost
104.131.127.196 Casinova
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
#ls -l /var/www/html
drwxr-xr-x 4 root root 4096 Mar 29 08:42 CASINOVA
-rw-r--r-- 1 root root 11510 Mar 30 03:05 index.html
-rw-r--r-- 1 root root 20 Oct 28 01:42 info.php
我已经发布了文件 default.conf、apache2.conf 和 hosts.py 中的内容。那有什么错误?
【问题讨论】:
查看tail -n 50 /var/log/apache2/error.log
,它会提示您缺少哪些权限。
错误是“Options ExecCGI is off in this directory”。我已经通过用 Options Indexes FollowSymLinks MultiViews 替换“Options Indexes FollowSymLinks Includes ExecCGI”来清除它。但是同样的禁止错误发生@Cyrbil
@shalin 可能是一个愚蠢的问题。如何像您问题中的第一个代码示例那样创建 django 项目结构?
【参考方案1】:
<Directory /var/www/html/CASINOVA/Casinova/static>
Options Indexes FollowSymLinks Includes ExecCGI
Require all granted
</Directory>
我猜,为你的 Django 目录设置 ExecCGI,而不是为/static
。
<Directory /var/www/html/CASINOVA/Casinova>
Options ExecCGI
</Directory>
【讨论】:
以上是关于django web 服务器中的 403 禁止错误的主要内容,如果未能解决你的问题,请参考以下文章