我在让 Django 使用我的 Apache 配置时遇到了重大问题。我没有创建服务器,所以我对服务器的工作方式没有太多的余地。本质上存在三个虚拟主机:
board.site.org、students.site.org 和 Insider.site.org
Insider.site.org 是我关心的主要网站。我负责它下面的一个小站点(最好是 insider.site.org/tech)。我决定将我的文件与原始目录分开,以免弄乱那里的东西(因为已经有一个非 python 站点)。无论如何,我的虚拟主机是在 /etc/apache2/vhosts.d/ 的单独文件中定义的
这是 insider.site.org 的配置的样子
Insider.conf
LoadModule python_module /usr/lib64/apache2/mod_python.so
<VirtualHost 10.10.1.1:80>
ServerName insider.site.org
DocumentRoot /media/nss/VWEB/docs
<Directory /media/nss/VWEB/docs>
Options Indexes Multiviews
AllowOverride None
Order Allow,Deny
#Allow from 10.11.0.78
Allow from all
</Directory>
Alias /tech /srv/www/Tech
<Directory /srv/www/Tech>
SetHandler python-program
PythonPath "['/srv/www/Tech'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE Tech.settings
PythonDebug On
</Directory>
Alias /media /srv/www/Media
<Directory /srv/www/Media>
SetHandler None
</Directory>
</VirtualHost>
- 请注意,当说 site.org 时,我指的是我的网站,而不是实际的“site.org”网址。
现在,这似乎对我来说应该是正确的,但由于某种原因,访问http://insider.site.org/tech/给了我这个错误:
Mod_python 错误:“PythonHandler mod_python.publisher”
回溯(最近一次通话最后):
文件“/usr/lib64/python2.4/site-packages/mod_python/apache.py”,第 299 行,在 HandlerDispatch 结果 = object(req)
文件“/usr/lib64/python2.4/site-packages/mod_python/publisher.py”,第 98 行,在处理程序路径 = [路径])
文件“/usr/lib64/python2.4/site-packages/mod_python/apache.py”,第 454 行,在 import_module f, p, d = imp.find_module(parts[i], path)
ImportError:没有名为索引的模块
而http://insider.site.org/tech(没有尾部正斜杠)会导致 403 错误。我在这个目录中确实有 Django,但它根本没有被执行(我在 tech 文件夹下的所有目录中都有 _ init _.py,这是我自己的个人计算机的副本(它从 django 中运行)测试服务器))所以我认为这不是问题。这根本行不通:-(
任何帮助表示赞赏,谢谢。