python - Django Apache Redhat 权限被拒绝,调用 fopen() 失败

标签 python linux django apache mod-wsgi

/var/log/httpd/error_log 说,

[Tue Nov 22 12:54:51.763863 2016] [mime_magic:error]  AH01512: mod_mime_magic: can't read /var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py', referer: http://ipaddress/Live
[Tue Nov 22 12:54:51.763953 2016] [mime_magic:error]  AH01512: mod_mime_magic: can't read /var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py', referer: http://ipaddress/Live
[Tue Nov 22 12:54:51.771547 2016] [:error]  (13)Permission denied: client ######## mod_wsgi (pid=39821, process='', application='omadi-trafcbi01.intranet.hdr|'): Call to fopen() failed for '/var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py'., referer: http://ipaddress/Live

我将我的项目从我的主文件夹移到/var/www/以尝试解决权限问题(无济于事)。

这是我添加到/etc/httpd/conf/httpd.conf 的内容,

WSGIScriptAlias / /var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py
WSGIPythonPath /bin/python3/site-packages:/var/www/Django_Project/cbtraffic/cbTraffic
<Directory /var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

我还有一个/etc/httpd/sites-enabled/000-default 文件,

<VirtualHost *:80>
    WSGIScriptAlias / /var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py
    <Directory "/var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic">
      Require all granted
    </Directory>
    WSGIDaemonProcess cbTraffic python-path=/var/www/Django_Project:/bin/python3/site-packages
    WSGIProcessGroup cbTraffic
    WSGIScriptAlias / /var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py
</VirtualHost>

这是我的 wsgi.py 文件,

import os
import sys
import site
sys.path.append("/var/www/Django_Project/cbtraffic/cbTraffic")
sys.path.append("/var/www/Django_Project/cbtraffic/cbTraffic/cbTraffic/wsgi.py")
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cbTraffic.settings")
application = get_wsgi_application()

这是我第一次尝试在 Redhat 上启动 Django。任何帮助将不胜感激。

最佳答案

Appache 通常作为 httpd 用户运行。我会确保该用户至少对该目录具有读取权限。您可能想尝试:

chown -R httpd:httpd /var/www/Django_Project/    

关于python - Django Apache Redhat 权限被拒绝,调用 fopen() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40749906/

相关文章:

python gtk多窗口

linux - execl找不到命令怎么办?

mysql - Django 窗体性能

python - 如何在不换行的情况下打印新值? (定时器)

python - Python反转计数器: slice indicies error

python - 类型错误 : 'CommandCursor' object has no attribute '__getitem__'

python - Python 中用于管理包的 "requirements.txt"的 Debian 等价物是什么?

linux - 如何使用 shell 脚本将可变数量的行从一个文件复制到另一个文件?

python - 如何使用 Django 在 nginx 中设置子目录

python - 运行已编译的Python