Estou tentando usar um aplicativo django em minha máquina ubuntu local. No entanto, o site não funciona e meu /var/log/apache2/errors.log
está cheio de mensagens como esta:
ImportError: No module named site
Meu /var/log/apache2/error.log
(por hoje) é assim:
$ cat error.log | uniq -c
1 [Wed Jun 29 09:37:37 2011] [notice] Apache/2.2.17 (Ubuntu) mod_wsgi/3.3 Python/2.7.1+ configured -- resuming normal operations
12966 ImportError: No module named site
Esse é o aviso que começou quando liguei minha máquina, seguido por 12.966 linhas, todas dizendo a no module named site
message
observe a falta de um campo de data e hora. Esses erros são repetidos mesmo quando você não acessa o site (ou seja, mesmo quando não está fazendo solicitações da Web). Ao acessar o site em um navegador, ele simplesmente trava, como se estivesse esperando por um download grande.
Configurações
Módulos Apache
Estou usando um virtualenv python 2.5 com muitos pacotes (incl. django 1.1) instalados com o pip. Eu tenho mod_wsgi carregado:
$ ls -l /etc/apache2/mods-enabled/wsgi*
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/apache2/mods-enabled/wsgi.conf -> ../mods-available/wsgi.conf
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/apache2/mods-enabled/wsgi.load -> ../mods-available/wsgi.load
Eu uso "tix" como nome de domínio definido como localhost em /etc/hosts
$ grep tix /etc/hosts
127.0.0.1 tix
Configuração do Apache
Aqui está minha configuração do apache (Você pode ver algumas tentativas para fazê-lo funcionar, linhas comentadas, etc.) :
# mod-wsgi enabled virtual host
WSGISocketPrefix /home/rory/tix/tix_wsgi/tmp
WSGIPythonHome /home/rory/tix/virtualenv2.5/lib/python2.5/
UnSetEnv PYTHONSTARTUP
SetEnv PYTHONPATH /home/rory/tix/virtualenv2.5/lib/python2.5/
#WSGIPythonEggs /home/rory/svn/tix/tmp/python-eggs
<VirtualHost 127.0.0.1:80>
ServerName tix
Alias /media /home/rory/tix/tix/media
Alias /selenium /home/rory/tix/tix/tests/selenium
<Directory /home/rory/tix/tix/media>
SetHandler None
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess tix user=tix_wsgi group=tix_wsgi processes=4 threads=1 python-path=/home/rory/tix/virtualenv2.5/lib/python2.5/site-packages
WSGIScriptAlias / /home/rory/tix/tix/apache/loader.wsgi
WSGIProcessGroup tix
CustomLog /var/log/apache2/tix_access.log combined
ErrorLog /var/log/apache2/tix_error.log
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
</Location>
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^media.tix$ [NC]
RewriteRule .? http://tix/media%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>
loader wsgi
Aqui está o meu loader.wsgi:
Eu costumava ter import site
neste arquivo, o que pensei que poderia ter causado o problema, mas o removi e os erros continuam aparecendo.
# loader.wsgi - WSGI adapter for tix django project
# The python paste wrapper catches apache 500 errors (Internal Server Errors) and gives debug output
# See http://pythonpaste.org/modules/exceptions.html
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'tix.settings.base'
from paste.exceptions.errormiddleware import ErrorMiddleware
import django.core.handlers.wsgi
tixette = django.core.handlers.wsgi.WSGIHandler()
application = ErrorMiddleware(tixette, debug=True, error_email='[email protected]', error_subject_prefix='Alert: wsgi loader python paste: ', error_log='/tix/1.0/logs/paste.log', show_exceptions_in_wsgi_errors=False)
Esta configuração costumava funcionar bem no Ubuntu 10.10, mas desde que eu atualizei para o Ubuntu 11.04, recebo os erros acima.