这是我在Fedora 7中的/etc/httpd/conf.d/中的python.conf文件
LoadModule python_module modules / mod_python.so
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonDebug On
PythonPath "['/var/www/vhosts/mysite.com/httpdocs','/var/www/vhosts/mysite.com/httpdocs/mysite'] + sys.path"
我知道/ var / www /不是放置我的django项目的最佳位置,但我只是想将我正在进行的工作的演示发送给我的客户,稍后我会更改位置。
例如。如果我访问www.domain.com/mysite/,我会得到我在mysite.urls中配置的索引视图。但我无法访问我的app.urls(www.domain.com/mysite/app/)和任何admin.urls。(www.domain.com/mysite/admin/)
这是mysite.urls:
urlpatterns = patterns('',
url(r'^admin/password_reset/$', 'django.contrib.auth.views.password_reset', name='password_reset'),
(r'^password_reset/done/$', 'django.contrib.auth.views.password_reset_done'),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),
(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'),
(r'^$', 'app.views.index'),
(r'^admin/', include(admin.site.urls)),
(r'^app/', include('mysite.app.urls')),
(r'^photologue/', include('photologue.urls')),
)
我也尝试使用''django.contrib.admin.urls'更改admin.site.urls,但它没有用。我搜索了很多来解决这个问题并阅读其他开发人员如何配置他们的django项目,但没有找到太多信息来在子目录中部署django。我在INSTALLED_APPS中启用了admin,并且settings.py没问题。
如果你有任何指导或告诉我我做错了什么,我们将不胜感激。
感谢。
答案 0 :(得分:0)
我正在使用mod_wsgi,所以我不确定它是否完全一样。但在我的urls.py中,我有:
(r'^admin/(.*)', admin.site.root),
在我的Apache配置中,我有这个:
Alias /admin/media/ /usr/lib/python2.5/site-packages/django/contrib/admin/media
您的路径可能会有所不同。
答案 1 :(得分:0)
如果您的settings.py是正确的并且具有正确的INSTALLED_APPS并且它在开发服务器中有效,那么我会说这是您的Apache配置文件。
尝试运行我的python应用程序来为mod_python + Django创建Apache配置文件。来源是github.com上的here。一旦有了工作配置文件,就可以对其进行修改。
像这样跑:
C:\Users\hughdbrown\Documents\django\Apache-conf>python http_conf_gen.py --flavor=mod_python --source_dir=. --server_name=foo.com --project_name=foo
Writing 'foo.vhost.python.conf'
结果如下所示:
# apache_template.txt
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@foo.com
ServerName foo.com
DocumentRoot "./foo/"
<Location "/">
# without this, you'll get 403 permission errors
# Apache - "Client denied by server configuration"
allow from all
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonOption django.root /foo
PythonDebug On
PythonPath "[os.path.normpath(s) for s in (r'.', r'C:\Python26\lib\site-packages\django') ] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE foo.settings
PythonAutoReload Off
</Location>
<Location "/media" >
SetHandler None
allow from all
</Location>
<Location "/site-media" >
SetHandler None
allow from all
</Location>
<LocationMatch "\.(jpg|gif|png)$">
SetHandler None
allow from all
</LocationMatch>
</VirtualHost>