Tentativa de executar o Django com o Apache2 mod_wsgi no Ubuntu Lucid Lynx sem sucesso

3

Eu tenho uma pequena com uma instalação mínima de lucid-lynx com aproximadamente 256mb de memória, ele é recém-instalado com nada de especial em execução nele. Estou tentando implantar , enquanto estou executando com sucesso o servidor usando manage.py, eu não posso obter com trabalhando:

# service apache2 start && service apache2 status
* Starting web server apache2                      [ OK ] 
Apache is NOT running.

log Erorr /var/log/apache2/error.log :

[Thu Apr 14 21:17:29 2011] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Apr 14 21:17:29 2011] [notice] Apache/2.2.14 (Ubuntu) mod_wsgi/2.8 Python/2.6.5 configured -- resuming normal operations
[Thu Apr 14 21:17:29 2011] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Thu Apr 14 21:17:29 2011] [error] Exception KeyError: KeyError(-1216795792,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Thu Apr 14 21:17:29 2011] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Thu Apr 14 21:17:29 2011] [error] Exception KeyError: KeyError(-1216795792,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Thu Apr 14 21:17:31 2011] [alert] No active workers found... Apache is exiting!

Meu arquivo de configuração /etc/apache2/httpd.conf :

WSGIScriptAlias / /usr/local/django/deals/apache/django.wsgi

<Directory /usr/local/django/deals/apache>
Order deny,allow
Allow from all
</Directory>

O arquivo /usr/local/django/deals/apache/django.wsgi :

import os
import sys

path = '/usr/local/django/deals'
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'deals.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Parece estar instalado:

# dpkg -l \*apache\* |grep -E '^ii'
ii  apache2                          2.2.14-5ubuntu8.4                        Apache HTTP Server metapackage
ii  apache2-mpm-worker               2.2.14-5ubuntu8.4                        Apache HTTP Server - high speed threaded mod
ii  apache2-utils                    2.2.14-5ubuntu8.4                        utility programs for webservers
ii  apache2.2-bin                    2.2.14-5ubuntu8.4                        Apache HTTP Server common binary files
ii  apache2.2-common                 2.2.14-5ubuntu8.4                        Apache HTTP Server common files
ii  libapache2-mod-wsgi              2.8-2ubuntu1                             Python WSGI adapter module for Apache
    
por Kit Sunde 14.04.2011 / 23:24

2 respostas

2

Eu finalmente descobri como resolver isso. Primeiro de me preocupar em atualizar para de 10.04 porque o servidor ofereceu apenas 128MB (256 MB de capacidade de expansão) e acabou com o upgrade médio. Talvez a solução para esse problema seja simplesmente atualizar . No entanto, atualizei as instalando-as a partir da fonte como descrito aqui , mas isso não parece afetar nada.

O avanço veio quando eu instalei por meio de apt-get install apache2-mpm-prefork , para usar isso em vez de como dimmer sugerido. Não tenho certeza se o problema é que ter estava fazendo com que meus outros erros não fossem registrados, talvez a próxima pessoa que encontrar problema possa tentar ignorar essa etapa. Quando mudei para o log de erros do apresentou os seguintes erros:

 mod_wsgi (pid=1436): Exception occurred processing WSGI script '/usr/local/django/deals/apache/django.wsgi'.
 Traceback (most recent call last):
   File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/core/handlers/wsgi.py", line 250, in __call__
     self.load_middleware()
   File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/core/handlers/base.py", line 39, in load_middleware
     for middleware_path in settings.MIDDLEWARE_CLASSES:
   File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/utils/functional.py", line 276, in __getattr__
     self._setup()
   File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/conf/__init__.py", line 42, in _setup
     self._wrapped = Settings(settings_module)
   File "/usr/local/lib/python2.6/dist-packages/Django-1.3-py2.6.egg/django/conf/__init__.py", line 89, in __init__
     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
 ImportError: Could not import settings 'deals.settings' (Is it on sys.path?): No module named deals.setting

Isso ocorre porque não conseguimos importar o módulo de configurações. A integração do wsgi com a documentação do Django explicou que eu preciso adicionar caminhos de inclusão, uma vez que eu atualizei /usr/local/django/deals/apache/django.wsgi everything correu suavemente.

import os, sys

sys.path.append('/usr/local/django/deals')
sys.path.append('/usr/local/django')

os.environ['DJANGO_SETTINGS_MODULE'] = 'deals.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
    
por 15.04.2011 / 20:46
1

Esse é um bug antigo do mod_wsgi. Atualize mod_wsgi para uma versão mais recente.

    
por 15.04.2011 / 10:13