Django官方安装文件似乎缺少确切的安装后设置文件夹权限的方法,因此在实时apache安装中不会显示403 Foridden错误。
我花了2个月的时间浏览成千上万的论坛帖子,数百本指南,以及无数有关设置文件夹权限的Stackoverflow问答。这些职位,指南或问答中没有两个是相同的。为了使工作正常进行,所有用户都必须在此处和那里实施自定义解决方案,这使他们感到困惑不解,对于应该设置哪些文件夹权限,任何地方都没有一致性。我可能代表无数成千上万的沉默寡言,他们在尝试获得文件夹权限时放弃了。
所以我的问题很简单,我如何在虚拟环境中使用Python 2.11配置并在Apache mod_wsgi服务器上使用Django的Ubuntu 16.04上设置正确的文件和文件夹权限?
我的结构按照官方文档-/ home / main / myproject / project 所有这些文件夹(主文件夹,主文件夹,myproject和项目)都具有755个权限,这些权限由名为“ main”的非root用户sudo用户拥有,我将使用该文件夹进行所有操作。
我已经完成:
chmod 664 ~/myproject/db.sqlite3
chmod 775 ~/myproject
sudo chown :www-data ~/myproject/db.sqlite3
sudo chown :www-data ~/myproject
显然,这些都是我需要的权限。但是我仍然收到403禁止的错误。我到底该如何直播Django这个东西?
编辑:我完全按照本教程进行操作:https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-debian-8,尤其是附加了/etc/apache2/sites-available/000-default.conf
的部分。我的000-default.conf附加内容如下:
<VirtualHost *:80>
. . .
Alias /static /home/main/myproject/static
<Directory /home/main/myproject/static>
Require all granted
</Directory>
# Next, add the following directory block
<Directory /home/main/myproject/project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess project python-home=/home/main/myproject/projectenv python-path=/home/main/myproject
WSGIProcessGroup project
WSGIScriptAlias / /home/main/myproject/project/wsgi.py
我的Apache错误日志在访问禁止的域索引后似乎没有显示任何问题:
[2018年6月27日星期三07:03:46.807525] [mpm_prefork:notice] [pid 21287] AH00171: 请求正常重启,进行重启 [2018年6月27日星期三07:03:46.878042] [wsgi:warn] [pid 21287] mod_wsgi:为Python / 2.7.11编译。 [2018年6月27日星期三07:03:46.878052] [wsgi:warn] [pid 21287] mod_wsgi:使用Python / 2.7.12运行时。 [2018年6月27日星期三07:03:46.878142] [mpm_prefork:notice] [pid 21287] AH00163:Apache / 2.4.18(Ubuntu)mod_fcgid / 2.3.9 OpenSSL / 1.0.2g mod_wsgi / 4.3.0 Python / 2.7.12已配置-恢复正常操作 [2018年6月27日星期三07:03:46.878156] [core:notice] [pid 21287] AH00094:命令行:'/ usr / sbin / apache2' [2018年6月27日星期三07:03:50.444008] [mpm_prefork:notice] [pid 21287] AH00171:请求正常重启,正在重启 [2018年6月27日星期三07:03:50.517693] [wsgi:warn] [pid 21287] mod_wsgi:为Python / 2.7.11编译。 [2018年6月27日星期三07:03:50.517704] [wsgi:warn] [pid 21287] mod_wsgi:使用Python / 2.7.12运行时。 [2018年6月27日星期三07:03:50.517823] [mpm_prefork:notice] [pid 21287] AH00163:Apache / 2.4.18(Ubuntu)mod_fcgid / 2.3.9 OpenSSL / 1.0.2g mod_wsgi / 4.3.0 Python / 2.7.12已配置-恢复正常操作 [2018年6月27日星期三07:03:50.517837] [core:notice] [pid 21287] AH00094:命令行:'/ usr / sbin / apache2'