我的主域( example.com )上托管了一个Django应用程序,现在我需要在子域上托管一个PHP应用程序( forum.example.com )。
在主域的目录中,我有以下.htaccess
条目:
SetHandler mod_python
PythonPath "/home/.../apps/example'] + sys.path"
PythonOption mod_python.importer.path "['/home/vlive/python']+ sys.path"
PythonHandler django.core.handlers.modpython
#PythonDebug On
SetEnv DJANGO_SETTINGS_MODULE example.settings
SetEnv PYTHON_EGG_CACHE /tmp/egg-cache
目前,当我加载子域名( forum.example.com )时,我仍然会看到主站点( example.com )。
我该如何解决这个问题?
答案 0 :(得分:1)
您需要通过VirtualHost
指令设置子域名,并且只在其中一个mod_python
中添加mod_wsgi
/ VirtualHost
处理程序。
你说你加载了子域,它仍然显示主站点。您介意向我们展示您的Apache的网站配置吗?
答案 1 :(得分:1)
选择错误VirtualHost的最常见原因是缺少NameVirtualHost指令,该指令匹配VirtualHost指令中指定的主机/端口限定符。
您设置了什么NameVirtualHost指令?两个VirtualHost配置的参数是什么?
总体布局如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
...
</VirtualHost>
<VirtualHost *:80>
ServerName forum.example.com
...
</VirtualHost>
这些通常在Linux Apache发行版的同一文件中。
你用过什么?
答案 2 :(得分:0)
正如Graham所说,很可能你的VirtualHost配置错误。
仔细检查是否存在两个具有正确ServerName的不同VH,并且您不在ServerName和ServerAlias中使用可能与子域重叠的*(通配符),或者它在子域之后。 Apache只搜索匹配的第一个VH,所以如果你有类似* .example.com之类的东西,那么像forum.example.com这样的任何其他子域都不行。
django文档也建议使用mod_wsgi,考虑切换到它。