此时扭转,试着让它运转起来。
我收到403 Forbidden: You don't have permission to access / on this server.
错误。我一直在关注如何设置Apache以使用CentOS和Django的指南:
另外,请阅读有关错误的SO上的几个问题,但没有一个问题解决了这个问题。
新鲜的Django项目安装应该只是在localhost:8000
显示静态“它的工作页面”,我想。
/etc/httpd/conf.d/django_test.conf
Alias /static /home/dev/testserver/static
<Directory /home/dev/testserver/static>
Require all granted
</Directory>
<Directory /home/dev/testserver/testserver>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess testserver python-path=/home/dev/testserver:/home/venvs/django/lib/python3.6/site-packages
WSGIProcessGroup testserver
WSGIScriptAlias / /home/dev/testserver/testserver/wsgi.py
在谈到这一点时,我很天真,但除了python manage.py runserver
设置之外,我还是不必运行HTTPD
吗?或者这仅适用于您是否使用内置的Django服务器在本地开发?
说到这,我可以使用内置的Django服务器访问远程服务器上的页面,但是理解这是非常不受欢迎的。
我确实打开了端口80
,可以看到它正在侦听流量。
根据教程,我提供了/home/dev
目录chmod 710
权限,并将apache
添加到与目录所有者相同的用户组。
只是没有看到我做错了什么。
编辑#1
我开始逐行浏览/etc/httpd/conf/httpd.conf
以查看是否有任何内容添加。对于group
我将其从apache
更改为sqladmin
,因为我将apache
用户添加到该组。此外,请确保明确添加LoadModule wsgi_module modules/mod_wsgi.so
。仍然没有运气。
无论如何,我现在正在阅读pip
mod_wsgi
个[Tue Jan 31 16:26:31.961512 2017] [core:error] [pid 4561] (13)Permission denied: [client 192.168.1.39:57651] AH00035: access to / denied (filesystem path '/home/dev/testserver/testserver/wsgi.py') because search permissions are missing on a component of the path
[Tue Jan 31 16:26:31.986965 2017] [core:error] [pid 4561] (13)Permission denied: [client 192.168.1.39:57651] AH00035: access to /favicon.ico denied (filesystem path '/home/dev/testserver/testserver/wsgi.py') because search permissions are missing on a component of the path, referer: http://192.168.1.4/
包,看看这是否可以解决我的问题。
编辑#2
error_log说明如下:
/home/dev
说明了权限错误,但据我所知,它应该只关注/home/venvs
和/home
。所有这些权限都与apache
具有相同的权限。用户apache
存在,用户sqladmin
是apache
组的一部分,该组是所有这些目录和文件的组。我甚至创建了一个sqladmin
组,并使drwxr-xr-x. 3 sqladmin sqladmin 24 Jan 31 15:08 dev
drwx------. 14 sqladmin sqladmin 4096 Jan 30 21:13 sqladmin
drwxr-xr-x. 3 sqladmin sqladmin 20 Jan 31 15:05 venvs
成为其中的一部分。
目录权限列表:
capybara-webkit
答案 0 :(得分:1)
...我或不需要另外运行python manage.py runserver 有HTTPD设置吗?
除了你不需要它之外,你永远不会在生产中使用manage.py runserver。这就是设置apache的重点
接下来让我们来看看:
WSGIDaemonProcess testserver python-path=/home/dev/testserver:/home/venvs/django/lib/python3.6/site-packages
虽然您已设置主目录的权限。 / home / venvs目录怎么样?这听起来像一个完全不同的用户帐户。那么您是否相应地更改了权限和组?
其次,您需要使apache可以读取te / home / dev / testserver文件夹,也可以执行。用户需要在目录上执行标志才能切换到该目录。通常,当项目传输到服务器时,您会发现权限被意外更改。
答案 1 :(得分:0)
好吧,无论它是否被认为是一个解决方案,因为我从来没有让Apache + mod_wsgi工作,但我确实让它通过PyPi mod_wsgi。
安装在virtualenv
中,然后按照“使用带有Django的mod_wsgi-express”部分进行操作。