【发布时间】:2017-04-06 14:28:48
【问题描述】:
/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。任何帮助将不胜感激。
【问题讨论】:
-
不相关,但在任何一个 Python 模块搜索路径选项中都不需要
/bin/python3/site-packages。只要您将python-path的WSGIDaemonProcess修复为具有/var/www/Django_Project/cbtraffic/cbTraffic的正确路径,您甚至根本不需要httpd.conf中的任何东西。而且您也不需要wsgi.py文件中的任何sys.path内容。在默认站点的Directory块中使用<Files wsgi.py>可以使安全访问更加具体,但没有。
标签: python linux django apache mod-wsgi