2009-08-26 10 views
1

こんにちは。私はルートのサブディレクトリに私のdjangoプロジェクトを設定しようとしていましたが、動作しませんでした。(LOcally完全に動作します)。 mod_pythonを使ってプロジェクトをデプロイするために、django公式のdjangoドキュメントに従った。本当の問題は、私が管理者や自分のアプリケーションの任意のビューに移動しようとするたびに「ページが見つかりません」というエラーが発生していることです。ここで 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" 

のFedora 7に/etc/httpd/conf.d/に位置しています

私は/ 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 =パターン( ''、

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はOKです。

ガイドがある場合や、私が間違っていることを教えていただければ幸いです。

THanks。

答えて

0

私はmod_wsgiを使用していますので、すべて同じかどうかはわかりません。しかし、私のurls.pyに、私が持っている:

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

を私のApacheの設定では、私はこれを持っている:

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です。作業用の設定ファイルを作成したら、変更することができます。このような

ラン:

# 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> 

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' 

結果は次のようになります

関連する問題