mod_wsgi 对'path/wsgi.py apache ubuntu 的 fopen() 调用失败

mod_wsgi 对'path/wsgi.py apache ubuntu 的 fopen() 调用失败

你好,我尝试2.2v在 ubuntu apache 服务器上部署我的 django 项目

当我运行时cat /var/log/apache2/error.log出现此错误:

[time] [wsgi:error] [pid 13224:tid 2323232] (13)权限被拒绝:[远程某个号码:号码] 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', 'project_name.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>

我的浏览器上的输出是:

内部服务器错误

我是不是漏掉了什么

答案1

该文件夹/root只能由 root 用户读取。apache 在 Ubuntu 上以用户身份运行www-data。将其放在用户可以读取的文件夹中,www-data例如/opt/project-name/var/www/project-name。将其复制到此类文件夹中后,在包含以下内容的文件夹中运行以下命令:project-name

sudo chgrp -R www-data project-name

此后它应该开始工作。您可以从在 Ubuntu Apache 子目录中配置 Django

相关内容