Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对';的fopen()的mod#u wsgi调用失败;path/wsgi.py apache ubuntu_Python_Django_Apache_Ubuntu - Fatal编程技术网

Python 对';的fopen()的mod#u wsgi调用失败;path/wsgi.py apache ubuntu

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

嗨,我尝试在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_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