MOD_WSGI Apache2 您无权访问此资源
MOD_WSGI Apache2 You don't have permission to access this resource
我正在使用 apache2 和 MOD_WSGI 部署一个 Django 项目。当我 运行 服务器时,我无法访问该网站,我在网站上收到错误消息,
Forbidden
You don't have permission to access this resource.
Apache/2.4.29 (Ubuntu) Server at testnexusstudy.com Port 8081
我已经设置了我认为我需要的一切,比如 conf 文件,
<VirtualHost *:8081>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Include conf-available/serve-cgi-bin.conf
Alias /static /root/StudBud1/static
<Directory /root/StudBud1/static>
Require all granted
</Directory>
Alias /media /root/StudBud1/media
<Directory /root/StudBud1/media>
Require all granted
</Directory>
<Directory /root/StudBud1/StudBud1>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /root/StudBud1/StudBud1/wsgi.py
WSGIDaemonProcess StudBud1 python-path=/root/StudBud1
WSGIProcessGroup StudBud1
</VirtualHost>
我已经提供了我认为 apache 所需的所有权限,这是我的 ls -la
drwxrwxr-x 12 root www-data 4096 Apr 5 19:36 StudBud1
-rw-rw-r-- 1 root www-data 204800 Apr 5 19:36 db.sqlite3
希望你们中的一些人遇到过此类错误。
出于安全原因,我不会使用或授予对您的网络服务器的根访问权限。
我会创建一个只能访问 www-data 组的用户,确保 apache 也在该组中。
其中一些命令来自 Fedora 发行版,因此它们可能与 Debian 略有不同。
$ adduser deploy
$ vim /etc/group
在/etc/group中:
www-data:x:1003:apache,deploy
/location/to/vhosts/website.conf(为清楚起见删除了无关的设置)
<VirtualHost *:80>
Alias /static/ /srv/vhosts/mywebsite/static/
Alias /media/ /srv/vhosts/mywebsite/media/
Alias /robots.txt /srv/vhosts/robots.txt
<Directory /srv/vhosts/mywebsite/path/to/django/configs>
Require all granted
</Directory>
<Directory /srv/vhosts/mywebsite/static>
Require all granted
</Directory>
<Directory /srv/vhosts/mywebsite/media>
Require all granted
</Directory>
<Location "/robots.txt">
SetHandler None
Require all granted
</Location>
WSGIDaemonProcess mywebsite python-home=/srv/vhosts/mywebsite/.venv python-path=/srv/vhosts/mywebsite/
WSGIProcessGroup mywebsite
WSGIScriptAlias / /srv/vhosts/mywebsite/path/to/django/configs/wsgi.py
</VirtualHost>
然后重启apache
完成后,确保将您的目录提供给用户和组 www-data
作为 sudo(-R 表示递归)
$ sudo chown -R deploy:www-data /path/to/webroot
我完全是个初学者。
在全新安装时,我必须为 /var/www/html 目录设置权限。
默认情况下它们是 -rw--------
我输入了 sudo chmod 775 * 并且它起作用了。
我正在使用 apache2 和 MOD_WSGI 部署一个 Django 项目。当我 运行 服务器时,我无法访问该网站,我在网站上收到错误消息,
Forbidden
You don't have permission to access this resource.
Apache/2.4.29 (Ubuntu) Server at testnexusstudy.com Port 8081
<VirtualHost *:8081>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Include conf-available/serve-cgi-bin.conf
Alias /static /root/StudBud1/static
<Directory /root/StudBud1/static>
Require all granted
</Directory>
Alias /media /root/StudBud1/media
<Directory /root/StudBud1/media>
Require all granted
</Directory>
<Directory /root/StudBud1/StudBud1>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /root/StudBud1/StudBud1/wsgi.py
WSGIDaemonProcess StudBud1 python-path=/root/StudBud1
WSGIProcessGroup StudBud1
</VirtualHost>
我已经提供了我认为 apache 所需的所有权限,这是我的 ls -la
drwxrwxr-x 12 root www-data 4096 Apr 5 19:36 StudBud1
-rw-rw-r-- 1 root www-data 204800 Apr 5 19:36 db.sqlite3
希望你们中的一些人遇到过此类错误。
出于安全原因,我不会使用或授予对您的网络服务器的根访问权限。
我会创建一个只能访问 www-data 组的用户,确保 apache 也在该组中。
其中一些命令来自 Fedora 发行版,因此它们可能与 Debian 略有不同。
$ adduser deploy
$ vim /etc/group
在/etc/group中:
www-data:x:1003:apache,deploy
/location/to/vhosts/website.conf(为清楚起见删除了无关的设置)
<VirtualHost *:80>
Alias /static/ /srv/vhosts/mywebsite/static/
Alias /media/ /srv/vhosts/mywebsite/media/
Alias /robots.txt /srv/vhosts/robots.txt
<Directory /srv/vhosts/mywebsite/path/to/django/configs>
Require all granted
</Directory>
<Directory /srv/vhosts/mywebsite/static>
Require all granted
</Directory>
<Directory /srv/vhosts/mywebsite/media>
Require all granted
</Directory>
<Location "/robots.txt">
SetHandler None
Require all granted
</Location>
WSGIDaemonProcess mywebsite python-home=/srv/vhosts/mywebsite/.venv python-path=/srv/vhosts/mywebsite/
WSGIProcessGroup mywebsite
WSGIScriptAlias / /srv/vhosts/mywebsite/path/to/django/configs/wsgi.py
</VirtualHost>
然后重启apache
完成后,确保将您的目录提供给用户和组 www-data 作为 sudo(-R 表示递归)
$ sudo chown -R deploy:www-data /path/to/webroot
我完全是个初学者。 在全新安装时,我必须为 /var/www/html 目录设置权限。 默认情况下它们是 -rw-------- 我输入了 sudo chmod 775 * 并且它起作用了。