大家好我无法在apache2 webserver中运行django应用程序。我已经浏览了所有文档,但它仍然无法正常工作。这是我的Apache2的httpd.conf文件
<Location "/mysite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonPath "['/home/djangotest/mysite'] + sys.path"
PythonDebug On
</Location>
我的django项目位置在/ home / djangotest / mysite,我正在运行民意调查应用程序。有什么我必须在settings.py或urls.py中提到这个在apache2中工作,它在开发服务器中工作正常。或者是否需要在apache2中进行配置才能工作
答案 0 :(得分:2)
下载并安装http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
添加到/etc/httpd/conf.d/目录
<VirtualHost *:80>
ServerName --insert--
ErrorLog /home/djangotest/mysite/error_log
CustomLog /home/djangotest/mysite/access_log combined
UseCanonicalName Off
WSGIScriptAlias /g2 /home/djangotest/mysite/mysite.wsgi
WSGIDaemonProcess iproj processes=7 threads=1 display-name=%{GROUP}
</VirtualHost>
在/etc/httpd/conf/httpd.conf中添加到LoadModules secion
LoadModule wsgi_module /usr/lib/httpd/modules/mod_wsgi.so
在/etc/httpd/conf/httpd.conf中添加到AddHandler部分
AddHandler wsgi-script .wsgi
确保您的httpd用户可以访问/ home / djangotest /以及执行您的python脚本
创建一个mysite.wsgi文件:
import os
import sys
sys.path.append('/home/djangotest/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
或者@Efazati说,阅读手册;)
Hopefuly这解决了你的最后一期:
没有名为mysite.urls的模块,但有一个文件urls.py
检查您的设置文件
ROOT_URLCONF =“mysite.urls”
这是您的网址文件的名称,我猜您没有名为mysite.urls.py的模块?听起来你的财产应该是:
ROOT_URLCONF =“urls”
答案 1 :(得分:1)
尝试将'/ home / djangotest'添加到PythonPath:
<Location "/mysite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonPath "['/home/djangotest', '/home/djangotest/mysite'] + sys.path"
PythonDebug On
</Location>
如果您使用语法导入项目的文件,则需要添加它。 不过,这里的其他人都是对的;如果可以的话,切换到mod-wsgi。 Django的mod_python支持很快就会被弃用。 http://docs.djangoproject.com/en/1.2/howto/deployment/modpython/
编辑:在Django 1.3中不推荐使用mod_python支持,并且将在Django 1.5上完全删除。
答案 2 :(得分:0)