使用apache、modwsgi部署Django

2024-05-14 09:02:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用wsgi部署django。但它不起作用。你能帮帮我吗?谢谢你

django.wsgi.py

#!/usr/bin/python
import os, sys
sys.path.append('/home/me/project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

/etc/apache2/sites-available/default

^{pr2}$

Error Message

   /etc/init.d/apache2 restart
Syntax error on line 3 of /etc/apache2/sites-enabled/me:
Invalid command 'PythonHandler', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!

更新:奇怪/etc/apache2/sites-enable/me

<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonDebug On
PythonPath "['/home/me2'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE me.settings

我可以禁用mod python吗?在


Tags: pathdjangocoreimportprojectwsgihomeos
3条回答

/etc/apache2/sites-enable/me文件用于modpython。在

你用的是mod\wsgi。在

因此。删除/etc/apache2/sites-enable/me并按照此处提供的文档进行操作

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/

很明显,您的错误消息来自不同的文件,而不是me,而不是{}。该文件显然有一个对PythonHandler的引用,这是一个属于mod_python的指令,您似乎还没有安装(也不应该安装,因为它已被弃用)。在

当您修复了这个错误(很可能是完全删除了该文件)之后,wsgi文件中会有另一个错误需要修复-您已经将project路径添加到pythonpath,但随后将您的设置引用为project.settings,因此找不到它。要么添加父路径,要么引用设置作为settings。在

我不是这方面的专家,但这里是比较我的工作。我使用的是mod\wsgi而不是mod\upython。你在“/etc/apache2/sites enabled/me”中的内容“我似乎在我的”django.wsgi.py“文件,而我在“站点”下没有启用此类文件。在

给你的django.wsgi.py您可能需要将路径添加到外部库,当我为我的项目设置路径时,我的设置文件是/var/myproject/src/myapp/设置.py,我将路径设置为“/var/myproject/src”,并将django_settings_模块设置为我的应用程序设置. 这是我的我的项目.wsgi文件看起来像:

#!/usr/bin/python
import os
import sys
sys.path.append('')
sys.path.append('/usr/local/lib/python2.7/site-packages')
sys.path.append('/usr/local/lib/python2.7/site-packages/Django-1.3-py2.7.egg')
... other external libs ..
sys.path.append('/var/myproject/myapp/src')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

这是我的wsgi.conf文件公司名称:

^{pr2}$

相关问题 更多 >

    热门问题