无法使用mod-wsgi在Apache上部署django

时间:2014-09-30 00:55:44

标签: python django python-2.7 mod-wsgi

我一直在研究Django应用程序,我已准备好转移到生产服务器。我安装了Apache和mod_wsgi,并且我使用了一个测试来检查它是否一切正常,而且确实如此。但是现在我在使用Django时遇到了问题。

我创建了wsgi.py文件:

import os
import os.path
import sys


sys.path.append('/var/www/html/mideastinfo/lib/python2.7/site-packages/django/bin/mideastinfo')
#os.environ['PYTHON_EGG_CACHE'] = 'path to a directory for egg cache'
os.environ['DJANGO_SETTINGS_MODULE'] = 'mideastinfo.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandlers()

我有http.conf通过WGSIScriptAlias指向它。它不工作,我知道它与sys.path有关,我不知道该怎么做。

我有一个开发环境,我在其中完成了所有构建。然后,我将所有项目依赖项安装到服务器用户pip和requirements.txt上。然后,我移动了我的项目文件。但我认为我得到了所有的映射和​​路径错误。有任何想法吗?我觉得我距离完成这一步还有一步之遥。

1 个答案:

答案 0 :(得分:0)

我将分享我如何配置一个简单的例子:

import os,sys
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append('PATH TO YOUR PROJECT ROOT')

os.environ['DJANGO_SETTINGS_MODULE'] = 'mideastinfo.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

在Apache配置上的VirtualHost指令中,您必须具有:

WSGIScriptAlias / /PATH/TO/YOUR/.wsgi

示例:

<VirtualHost *:80>
    ErrorLog /home/user/logs/error.log
    ...
    WSGIScriptAlias / /PATH/TO/YOUR/.wsgi
    ...
</VirtualHost>