我有的:
具有 4 个具有不同域的虚拟服务器的 Apache http 服务器:
www.mydomain.com points to /var/www/mydomain/htdocs (php code)
它有效。所有其他域都无关紧要。
在另一台机器上,我设计了一个带有两个应用程序的 django 项目,它与 django 的内置服务器配合得很好。
我需要的:
www.mydomain.com pointing to /var/www/mydomain/htdocs (php code)
www.mydomain.com/recsys pointing to /opt/repsys (django code)
我想将 PHP 代码保留在 root 上并在 /repsys 中安装 django。
我可以将我的 django 代码放在 root 上,但是当我尝试放入 /repsys 时,我遇到了两个问题:
- 我必须将 /repsys 放在我的 settings.py 文件的所有 url 上(这不是问题,但对我来说很奇怪)
我从 django 代码中得到了这个错误:
未找到带有参数“(u'viewproject',)”和关键字参数“{}”的“ajax”的反向
我可以看到这是由于 url 的变化(现在它包括 /repsys)和 django 不知道如何反转这个 url,但我不知道如何解决这个问题......
我的 django 是:1.5.1
这是我的 wsgi.py
import os, sys
sys.path.append('/opt/repsys')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "repsys.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
和我的这个虚拟服务器的 apache conf 文件:
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix /var/run/wsgi
#WSGIPythonPath /opt/repsys/
<VirtualHost *:80>
WSGIDaemonProcess repsyssite display-name=%{GROUP}
WSGIProcessGroup repsyssite
ServerAdmin blahhh@gmail.com
ServerName www.mydomain.com
DocumentRoot "/var/www/mydomain/htdocs"
WSGIScriptAlias /reprep /opt/repsys/repsys/wsgi.py
Alias /reprep/static /opt/repsys/static_serve
Alias /reprep/media /opt/repsys/media
Alias /admin_media /home/myuser/Django-1.5/django/contrib/admin/media
<Directory opt/repsys>
Order allow,deny
Allow from all
</Directory>
# Logfiles
ErrorLog /var/www/logs/glob/error.log
CustomLog /var/www/logs/glob/access.log combined
</VirtualHost>
我的主要 url.py 包括:
url(r'^report/', include('report.urls', namespace="report")),
我的 report/url.py 包括:
url(r'^(?P<fn>\w+)/ajax/$', views.ajax, name='ajax'),
这是当我将项目置于根目录时有效但在子文件夹中失败时的行:
$('#viewreportdiv').load("{% url 'report:ajax' 'viewproject' %}", {proj: id});
有人可以指出如何解决这个问题吗?