2009-08-26 4 views
1

안녕하세요. 내 django 프로젝트를 루트의 하위 디렉토리에 구성하려고했지만 작동하지 못했습니다. (LOcally 완벽하게 작동합니다). 난 django 공식 django documentarion을 따라 mod_python으로 프로젝트를 전개했다. 실제 문제는 관리자 또는 내 앱보기로 이동할 때마다 "페이지를 찾을 수 없음"오류가 발생한다는 것입니다. 여기 mod_python을 사용하여 Django 프로젝트를 하위 디렉토리에 구성하십시오. 관리자가 작동하지 않습니다.

은 내 python.conf 파일

을 LoadModule python_module 모듈/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" 

페도라 7 /etc/httpd/conf.d/에 위치

나는/var/www /를 알기에 장고 프로젝트를하기에 최적의 장소는 아니지만 진행중인 작업에 대한 데모를 내 고객에게 보내고 싶습니다. 나중에 위치를 바꿀 것입니다.

예를 들면. www.domain.com/mysite/에 가면 mysite.urls에서 구성된 색인보기를 얻습니다. 하지만 내 app.urls (www.domain.com/mysite/app/) 및 admin.urls (www.domain.com/mysite/admin/)에 액세스 할 수 없습니다.

여기에 mysite.urls가 있습니다. :

urlpatterns = 패턴 ('',

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')), 

)

가 나는 또한 함께 admin.site.urls을 변경 시도 'django.contrib.admin.urls',하지만하지 않았다 일했다. 이 문제를 해결하고 다른 개발자가 자신의 django 프로젝트를 구성하는 방법을 읽었지만 하위 디렉토리에 django를 배포하기에는 너무 많은 정보를 찾지 못했습니다. INSTALLED_APPS에서 관리자를 사용할 수 있으며 settings.py는 정상입니다.

가이드가 있거나 내가 뭘 잘못하고 있는지 말하면 많은 도움이 될 것입니다.

THanks.

답변

0

저는 mod_wsgi를 사용하고 있습니다. 그래서 모두 같은지 확실하지 않습니다. 하지만 내 urls.py에서, 내가 가진 :

(r'^admin/(.*)', admin.site.root), 

을 내 아파치 설정에서,이 있습니다

Alias /admin/media/ /usr/lib/python2.5/site-packages/django/contrib/admin/media 

경로는 다를 수 있습니다.

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 [email protected] 
    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> 
관련 문제