Python 对';的fopen()的mod#u wsgi调用失败;path/wsgi.py apache ubuntu
嗨,我尝试在ubuntu apache服务器上部署我的django项目Python 对';的fopen()的mod#u wsgi调用失败;path/wsgi.py apache ubuntu,python,django,apache,ubuntu,Python,Django,Apache,Ubuntu,嗨,我尝试在ubuntu apache服务器上部署我的django项目2.2v 当我运行cat/var/log/apache2/error.log时,我得到以下错误: [time][wsgi:error][pid 13224:tid 2323232](13)权限被拒绝:[远程一些号码:number]mod_wsgi(pid=13323,process='django_app',application='django_project |'):为'/root/project_name/project
2.2v
当我运行cat/var/log/apache2/error.log
时,我得到以下错误:
[time][wsgi:error][pid 13224:tid 2323232](13)权限被拒绝:[远程一些号码:number]mod_wsgi(pid=13323,process='django_app',application='django_project |'):为'/root/project_name/project_name/wsgi.py'调用fopen()失败
我的wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'zettapc.settings')
application = get_wsgi_application()
这是我的/etc/apache2/sites available/django_proj.conf
:
<VirtualHost *:80>
Alias /static /root/project_name/static
<Directory /root/project_name/static>
Require all granted
</Directory>
Alias /meida /root/project_name/meida
<Directory /root/project_name/meida>
Require all granted
</Directory>
<Directory /root/project_name/zettapc>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /root/project_name/project_name/wsgi.py
WSGIDaemonProcess django_app python-path=/root/project_name python-home=/root/project_name/venv/
WSGIProcessGroup django_app
</VirtualHost>
是否有我遗漏的东西最有可能是您的wsgi文件属于root用户,apache服务器作为非root用户运行。 您可以使用
ps aux|egrep'(apache | httpd)
哪个用户拥有您的wsgi文件,其ls-l/root/project\u name/project\u name/wsgi.py
您最好将项目从根文件夹移动到更合适的位置(例如/usr/
),并使用chown-r:
或者以root用户身份运行apache服务器,但这是一种非常糟糕的做法,所以不要这样做
编辑:
也可能是您的wsgi服务器(gunicorn/uwsgi?)以错误的用户身份运行,相同的修复程序仍然会起作用。我通过运行您的命令更新了这个问题,您能再次检查吗,此用户无法访问root用户拥有的文件,如wsgi.py。将项目移动到
/usr/
,并将其所有者更改为www-data
。有很多变量,比如你的当前用户,我不知道,所以我不能给你确切的命令,但反复试验会让你的结果出现。有没有办法将其更改为与wsgi ran相同的?你使用的是什么wsgi服务器?它应该是其中之一,它作为什么用户运行?mod_wsgi,我使用默认根用户
-rwxr-x--- 1 root root 177 time /root/project_name/project_name/wsgi.py