Configurar projeto Django em um subdiretório usando mod_python. Administrador não funciona

votos
1

Oi pessoal. Eu estava tentando configurar meu projeto Django em um subdiretório da raiz, mas não fazer as coisas funcionarem. (Localmente ele funciona perfeito). Segui o Django Django oficial documentarion para implantar um projeto com mod_python. O verdadeiro problema é que eu estou recebendo Página não encontrada erros, sempre que eu tento ir para o administrador ou qualquer ponto de vista dos meus apps.

Aqui está o meu arquivo python.conf localizado na /etc/httpd/conf.d/ no 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

Eu sei / var / www / não é o melhor lugar para colocar meu projeto Django, mas eu só quero para enviar uma demo do meu trabalho em andamento para o meu cliente, mais tarde eu vou mudar a localização.

Por exemplo. Se eu for para www.domain.com/mysite/ fico com a exibição do índice I configurado no mysite.urls. Mas eu não posso aceder aos meus app.urls (www.domain.com/mysite/app/) e qualquer um dos admin.urls. (Www.domain.com/mysite/admin/)

Aqui está 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')),

)

Eu também tentei mudar admin.site.urls com '' django.contrib.admin.urls', mas não funcionou. Eu pesquisei um monte de resolver este problema e ler como outros desenvolvedores configurar seu projeto Django, mas não encontrou muita informação para colocar o Django em um subdiretório. Eu tenho o administrador habilitado INSTALLED_APPS eo settings.py é ok.

Por favor, se você tiver qualquer guia ou me dizer o que estou fazendo de errado que será muito apreciado.

Obrigado.

Publicado 27/08/2009 em 00:19
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

Se o seu settings.py está correto e tem o seu INSTALLED_APPS correta e funciona no servidor de desenvolvimento, então eu diria que é você arquivo de configuração do Apache.

Tente executar meu aplicativo python para criar arquivos de configuração do Apache para mod_python + Django. A fonte é aqui na github.com. Uma vez que você tem um arquivo de configuração de trabalho, você pode modificá-lo.

Executar como esta:

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'

Resultado parecido com este:

# 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>
Respondeu 27/08/2009 em 00:54
fonte usuário

votos
0

Estou usando mod_wsgi, então eu não tenho certeza se é tudo a mesma coisa. Mas no meu urls.py, eu tenho:

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

Na minha configuração do Apache, eu tenho este:

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

Seu caminho pode variar.

Respondeu 27/08/2009 em 00:53
fonte usuário

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