Configurer projet Django dans un sous-répertoire en utilisant mod_python. Administrateur ne fonctionne pas

voix
1

Salut les gars. J'ai essayé de configurer mon projet django dans un sous-répertoire de la racine, mais ne pas faire avancer les choses à travailler. (LOCALEMENT il fonctionne parfaitement). Je suivais le django django documentarion officiel de déployer un projet avec mod_python. Le vrai problème est que je reçois « Page not found » erreurs, chaque fois que j'essaie d'aller à l'administrateur ou d'une vue de mes applications.

Voici mon fichier python.conf situé dans /etc/httpd/conf.d/ dans Fedora 7

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

Je sais que / var / www / n'est pas le meilleur endroit pour mettre mon projet django, mais je veux juste envoyer une démo de mon travail en cours à mon client, je vais plus tard changer l'emplacement.

Par exemple. Si je vais à www.domain.com/mysite/ je reçois sur l'index I configuré dans mysite.urls. Mais je ne peux pas accéder à mes app.urls (www.domain.com/mysite/app/) et l'un des admin.urls. (Www.domain.com/mysite/admin/)

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

)

J'ai aussi essayé de changer admin.site.urls avec « » django.contrib.admin.urls', mais cela n'a pas fonctionné. Je googlé beaucoup à résoudre ce problème et lire comment d'autres développeurs configurer leur projet django, mais n'a pas trouvé trop d'informations à déployer django dans un sous-répertoire. Je l'administrateur activé dans INSTALLED_APPS et settings.py est ok.

S'il vous plaît, si vous avez un guide ou me dire ce que je fais mal, il sera très apprécié.

Merci.

Créé 27/08/2009 à 00:19
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Si votre settings.py est correcte et a votre INSTALLED_APPS correct et il fonctionne sur le serveur de développement, alors je vous dirais que c'est le fichier de configuration Apache.

Essayez d' exécuter mon application python pour créer des fichiers de configuration Apache pour mod_python + Django. La source est ici à github.com. Une fois que vous avez un fichier de configuration de travail, vous pouvez le modifier.

Exécuter comme ceci:

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'

Résultat ressemble à ceci:

# 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>
Créé 27/08/2009 à 00:54
source utilisateur

voix
0

J'utilise mod_wsgi, donc je ne suis pas sûr que ce soit la même chose. Mais dans mon urls.py, je:

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

Dans ma config Apache, j'ai ceci:

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

Votre chemin peut varier.

Créé 27/08/2009 à 00:53
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more