gpt4 book ai didi

Django 1.10,Apache 2.4 Serving Basic App on CentOS7 得到 403 Forbidden to/

转载 作者:行者123 更新时间:2023-12-04 19:37:21 24 4
gpt4 key购买 nike

在这一点上搞砸只是为了让它工作。

我收到 403 Forbidden: You don't have permission to access / on this server. 错误。我一直在关注如何设置 Apache 以使用 CentOS 和 Django 的本指南:

https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos-7

此外,请阅读有关该错误的几个关于 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。仍然没有运气。

无论如何,我现在正在阅读关于 pipmod_wsgi 包,看看这是否可以解决我的问题。

编辑#2

error_log 说明如下:
[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/

说权限错误,但据我所知,它应该只查看 /home/dev/home/venvs 。所有这些都具有与 /home 相同的权限。用户 apache 存在,并且用户 apachesqladmin 组的一部分,该组是所有这些目录和文件的组。我甚至创建了一个 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

最佳答案

... do I or don't I have to run python manage.py runserver in addition to having HTTPD setup?



除了您也不需要它之外,您永远不会在生产中执行 manage.py runserver 。这就是设置 apache 的重点

接下来让我们看看这个:
 WSGIDaemonProcess testserver python-path=/home/dev/testserver:/home/venvs/django/lib/python3.6/site-packages

尽管您已经为您的主目录设置了权限。/home/venvs 目录呢?这听起来像是一个完全不同的用户帐户。那么,您是否相应地更改了该权限和组?

其次,您需要使 te/home/dev/testserver 文件夹也可以被 apache 读取并且也可以执行。用户更改到该目录需要目录上的执行标志。通常,您会发现在将项目传输到服务器时意外更改了权限。

关于Django 1.10,Apache 2.4 Serving Basic App on CentOS7 得到 403 Forbidden to/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com