неудачно запустить приложение wsgi с mod_wsgi - PullRequest
1 голос
/ 25 марта 2012

Для отладки приложения bottle.py, которое я пытаюсь развернуть в openshift (с подозрением, проблема связана с mod_wsgi - этот открытый вопрос ) Я пытаюсь запустить mod_wsgi на моем Станция Linux. как гласит заголовок - я с треском проваливаюсь.

Я скачал и установил mod_wsgi, скомпилированный для python2.6, в соответствии с инструкциями в вики mod_wsgi.

запуск apache2ctl -M Я проверил, что mod_wsgi (shared) находится в результирующем списке, так что я думаю, что я правильно понял эту часть

Я написал файл appname в / etc / apache2 / sites-availableable, содержащий:

<VirtualHost *:8051> #also tried with * or *:80 or myappname
#   ServerName 127.0.0.1:8051 #also tried to uncomment
    ServerAlias wikimen #also tried without

#   WSGIDaemonProcess wikimen user=myusername group=myusername threads=5 #also tried to uncomment
   WSGIScriptAlias / /home/myusername/workspace/myapp/wsgi/application
   DocumentRoot /home/myusername/workspace/myapp/wsgi

    <Directory /home/myusername/workspace/myapp/wsgi>

#        WSGIProcessGroup myapp
#       WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

и после запуска:

sudo a2ensite

проверил, что он был создан соответствующим образом в каталогах с поддержкой сайтов, и запустил:

sudo service apacha2 reload

когда я захожу в браузер и пытаюсь: localhost: 8051 или localhost / appname / routename или localhost: 8051 / routename или localhost: 8051 / appname или любая другая комбинация между ними, которую я только что получил (также при изменении localhost на 127.0.0.1):

unable to connect

файл дескриптора wsgi (с именем «application») содержит:

#!/usr/bin/python

import os
here = os.path.dirname(os.path.abspath(__file__))


try:

    os.environ['PYTHON_EGG_CACHE'] = os.path.join(os.environ['OPENSHIFT_APP_DIR'],'virtenv/lib/python2.6/site-packages')

except:
    os.environ['PYTHON_EGG_CACHE'] = os.path.join(here,'..','data/virtenv/lib/python2.6/site-packages')

print ('python egg cache set to: %s' % os.environ['PYTHON_EGG_CACHE'])
try:

    virtualenv = os.path.join(os.environ['OPENSHIFT_APP_DIR'],"virtenv/bin/activate_this.py")
except:
    virtualenv = os.path.join(here,'..',"data/virtenv/bin/activate_this.py")

print ('virtualenv is in:%s' % virtualenv)
try:
    execfile(virtualenv, dict(__file__=virtualenv))
    print ('executed')

except IOError:
    pass

from myappname import application

но, как я уже сказал, это работает (также вызывает некоторую странную ошибку bottle.py) на сервере openshift, поэтому я думаю, что это не проблема, и я буду рад, если вас опровергнут

может быть, стоит упомянуть, что файл wsgi "application", как и все остальное приложение, находится в каталоге virtualenv

Я не очень хорошо разбираюсь в apache (наш производственный сервер чероки использует реверсивный прокси и нативный python-сервер, а не mod_wsgi), так что, возможно, я упускаю что-то простое

основной файл bottle.py запускается, если я запускаю его напрямую с дескриптором wsgi Буду рад любой помощи

с использованием: ubunto 11, apache2.2, текущей версии mod_wsgi, python 2.6 (у меня также есть python 2.7, но приложение работает в virtualenv из python2.6 в соответствии с сервером openshift)

отслеживание журнала ошибок apache2 не показывает ничего полезного (также убивает его и запускает заново):

> [Sat Mar 24 15:45:10 2012] [notice] Apache/2.2.20 (Ubuntu)
> PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3 Python/2.6.7
> configured -- resuming normal operations [Sat Mar 24 21:19:24 2012]
> [notice] caught SIGTERM, shutting down [Sat Mar 24 21:19:54 2012]
> [notice] Apache/2.2.20 (Ubuntu) PHP/5.3.6-13ubuntu3.6 with
> Suhosin-Patch mod_wsgi/3.3 Python/2.6.7 configured -- resuming normal
> operations [Sat Mar 24 21:36:30 2012] [notice] Apache/2.2.20 (Ubuntu)
> PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3 Python/2.6.7
> configured -- resuming normal operations [Sat Mar 24 21:40:48 2012]
> [notice] caught SIGTERM, shutting down [Sat Mar 24 21:41:18 2012]
> [notice] Apache/2.2.20 (Ubuntu) PHP/5.3.6-13ubuntu3.6 with
> Suhosin-Patch mod_wsgi/3.3 Python/2.6.7 configured -- resuming normal
> operations [Sat Mar 24 23:47:11 2012] [notice] Apache/2.2.20 (Ubuntu)
> PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3 Python/2.6.7
> configured -- resuming normal operations [Sun Mar 25 22:20:22 2012]
> [notice] Apache/2.2.20 (Ubuntu) PHP/5.3.6-13ubuntu3.6 with
> Suhosin-Patch mod_wsgi/3.3 Python/2.6.7 configured -- resuming normal
> operations [Sun Mar 25 22:34:12 2012] [notice] caught SIGTERM,
> shutting down [Sun Mar 25 22:34:24 2012] [notice] Apache/2.2.20
> (Ubuntu) PHP/5.3.6-13ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3
> Python/2.6.7 configured -- resuming normal operations

1 Ответ

1 голос
/ 25 марта 2012

Если вы получаете «неспособность подключиться» в своем браузере, то ничего не можете сделать с mod_wsgi, и вместо этого ваш браузер не может даже подключиться к серверу.Исправить вопрос с сообщениями об ошибках, которые вы найдете в журнале ошибок Apache?Возможно, ваш Apache даже не запускается из-за плохих файлов конфигурации.

...