WSGIDaemonProcess导致您没有权限错误'

时间:2018-02-14 08:33:29

标签: django apache ubuntu-16.04 mod-wsgi

您好我正在尝试在数字海洋服务器上部署我的django应用程序。我确实在虚拟环境中运行应用程序,一切正常。但我希望我的域指向我的应用程序并遵循this教程。但问题是当使用以下代码编辑apache conf文件时,我收到错误。

  

禁止您无权访问/在此服务器上。

这是我直接看的方式

    +root
    +myproject
        +myproject
            settings.py
            urls.py
            wsgi.py
        +static
        manage.py
    +myprojectenv

这是我的WSGI.py

import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
application = get_wsgi_application()

这是我的Apache默认配置文件000-default.conf

<VirtualHost *:80>

#ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html

Alias /static /home/user/alpha/static
<Directory /home/user/alpha/static>
Require all granted
</Directory>

Alias /static /home/root/myproject/static
<Directory /home/root/myproject/static>
    Require all granted
</Directory>

<Directory /home/root/myproject/myproject>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess myproject python-home=/home/root/myproject/myprojectenv python-path=/home/root/myproject
WSGIProcessGroup myproject
WSGIScriptAlias / /home/root/myproject/myproject/wsgi.py


ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

我没有足够的经验来找出导致错误的原因。如果我在apache conf文件中删除下面的行。当我尝试访问我的服务器时,我获得了Ubuntu主页

 WSGIDaemonProcess myproject python-home=/home/root/myproject/myprojectenv python-path=/home/root/myproject
WSGIProcessGroup myproject
WSGIScriptAlias / /home/root/myproject/myproject/wsgi.py

1 个答案:

答案 0 :(得分:0)

您的Python代码将以Apache用户身份运行。因此,它可能无法访问主目录下的文件,因为它们没有允许其他人访问的权限。

你应该从主目录中移出东西并把它放在像/var/www/project这样的地方。

请参阅: