我使用python 2.4和django 1.2.2以及apache 2.2.3
写这样的httpd.conf部分:
<Location "/mysite/">
PythonPath "['/home/usr/www'] + sys.path"
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonDebug On
</Location>
settings.py路径:/ home / usr / www / mysite /
但是当我访问http://localhost/mysite/
ImportError:无法导入设置 'mysite.settings'
我修改了它,将/ home / usr / www更改为/ var / www并复制/ var / www中的settings.py。 那么为什么apache对待两个目录的方式不同
答案 0 :(得分:1)
您使用的是SELinux吗?比较
的输出ls -laZ /var/www
和
ls -laZ /home/usr/www
有可能apache进程无法访问您的主目录。如果这是问题,可以像
一样解决chcon -R --reference=/var/www /home/usr/www
chmod og+x /home/usr /home/usr/www
BTW:http://docs.djangoproject.com/en/dev/howto/deployment/modpython/警告说“在Django的未来版本中将不推荐支持mod_python。如果您正在配置新部署,强烈建议您考虑使用mod_wsgi或任何其他受支持的后端。 “
答案 1 :(得分:0)
添加PythonPath "['/home/usr/www/mysite'] + sys.path"