Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 无法使用mod_wsgi&;部署django;阿帕奇_Python_Django_Apache_Mod Wsgi - Fatal编程技术网

Python 无法使用mod_wsgi&;部署django;阿帕奇

Python 无法使用mod_wsgi&;部署django;阿帕奇,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,经过几天令人沮丧的尝试,我无法使用mod_wsgi部署我的django站点。有人能检查一下这些细节,看看是否有什么明显的错误吗?这是我第一次部署Django。它一直在用pythonmanage.py runserver 10.10.10.214:8080运行文件,但我无法部署它 我的wsgi.py文件位于/home/user/django/mysite(也位于my settings.py等的位置) 我的apache.conf文件: LoadModule wsgi_module /home/con

经过几天令人沮丧的尝试,我无法使用mod_wsgi部署我的django站点。有人能检查一下这些细节,看看是否有什么明显的错误吗?这是我第一次部署Django。它一直在用python
manage.py runserver 10.10.10.214:8080运行文件,但我无法部署它

我的
wsgi.py
文件位于
/home/user/django/mysite
(也位于my settings.py等的位置)

我的apache.conf文件:

LoadModule wsgi_module /home/conf/apache2/modules/mod_wsgi.so #dont read into the locations too much - they are correct

WSGIScriptAlias / /home/user/django/mysite/wsgi.py
WSGIPythonPath /home/user/django

<Directory /home/user/django/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
LoadModule wsgi_module/home/conf/apache2/modules/mod_wsgi.so#不要对位置读得太多-它们是正确的
WSGIScriptAlias//home/user/django/mysite/wsgi.py
WSGIPythonPath/home/user/django
要求所有授权
我被迫使用大量预先定制的apache版本,但上面包含了conf文件。任何帮助都会很好

干杯,亚瑟试试这个wsgi.py:

import os
import sys

os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"

sys.path.append('/home/user/django/mysite/')
sys.path.append('/home/user/django/')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
并将其添加到您的配置文件中,在别名之前:

WSGIDaemonProcess <process_name> processes=2 threads=15 user=<username> display-name=%{GROUP}
WSGIProcessGroup <process_name>
WSGIDaemonProcess进程=2线程=15用户=显示名称=%{GROUP}
WSGIProcessGroup

进程名称可以是“mysite.com”或其他任何名称。该用户是Linux用户。

我建议使用nginx和uwsgi;)apache错误日志是否向您指出了任何方向。乍一看,配置似乎是正确的,我可能只需要看看@doniyorth,这也会有所帮助:像
/home/user
这样的主目录通常具有限制性权限,其他用户无法访问。因此,仅仅使Django项目目录可访问是不够的。主目录还需要能够被运行Apache的用户访问。最好是将项目移出您的用户帐户,这样您就不会干扰帐户权限。Rob-我说的项目可以是任何东西是对的吗?当然是合乎逻辑的。另外,我相信如果不使用user=out,将使用默认的apache子权限。Sarthur,您可能在这两方面都是正确的。例如,我使用
user=www-data
WSGIDaemonProcess <process_name> processes=2 threads=15 user=<username> display-name=%{GROUP}
WSGIProcessGroup <process_name>