Для отладки приложения 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