我正在尝试使用 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
<VirtualHost *:80>
ServerName www.me.org
ServerAlias *me.org
Alias /admin_media /usr/lib/python2.4/site-packages/django/contrib/admin/media
<Location /admin_media>
Order allow,deny
Allow from all
</Location>
Alias /media /var/www/media/
<Location /media>
Order allow,deny
Allow from all
</Location>
WSGIScriptAlias / /home/me/project/apache/django.wsgi
WSGIDaemonProcess me processes=2 maximum-requests=500 threads=1
WSGIProcessGroup me
</VirtualHost>
错误信息
/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 吗?
最佳答案
很明显,您的错误消息来自与您在此处显示的文件不同的文件 - me
而不是 default
。该文件显然引用了 PythonHandler
,这是一个属于 mod_python
的指令,您似乎没有安装它(而且不应该安装,因为它已被弃用).
当你修复了那个错误 - 很可能是通过完全删除那个文件 - 你将在你的 wsgi
文件中修复另一个错误 - 你已经添加了 project
到 pythonpath 的路径,但随后将您的设置引用为 project.settings
,因此不会找到它。要么添加父路径,要么将设置引用为 settings
。
关于python - 使用 apache、mod-wsgi 部署 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353886/