У меня есть приложение Python WSGI, которое я написал и работает с apache2 + mod_wsgi во встроенном режиме, и я пытаюсь заставить его работать в режиме демона.
Проблема в том, что с конфигурацией (ниже) вместо приложения я вижу Apache2 по умолчанию "Это работает!" страница, которая, несмотря на рвение, с которым она заявляет о своем рабочем статусе, неверна.
Я только продезинфицировал имя приложения, URL-адреса и т. д., поэтому вы видите всю конфигурацию Apache, которую я использую.
<VirtualHost *:80>
ServerName app.example.com
ServerAlias app
WSGIDaemonProcess appname user=www-data group=www-data processes=5 threads=5 display-name=%{GROUP} maximum-requests=1000
WSGIScriptAlias / /usr/share/app/app/application.wsgi
Alias /static /usr/share/app/app/static
ErrorLog /var/log/apache2/app/error.log
CustomLog /var/log/apache2/app/access.log common
<Directory /usr/share/app/app>
WSGIProcessGroup appname
Order allow,deny
Allow from All
</Directory>
<Directory /usr/share/app/app/static>
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
Независимо от того, поместил ли я параметр WSGIProcessGroup в раздел или только в основной раздел, это все равно просто показывает «Это работает!» страница.
Приложение использует бутылки и toscawidgets с валидатором wsgi, чтобы убедиться, что все работает правильно. Код, который я использую для создания приложения:
import bottle
import tw.api
from wsgiref.validate import validator
#.... A whole buttload of code
application = bottle.default_app()
application = tw.api.make_middleware(application, stack_registry=True)
application = validator(application)
Редактировать: я также хотел бы отметить, что у меня была эта проблема как в mod_wsgi 2.8 с Python 2.6.5, так и в mod_wsgi 3.3 с Python 2.7.3.
Редактировать 2: Псевдоним для /static/ все еще работает, поэтому я, похоже, все еще нажимаю VirtualHost. Если я закомментирую директиву WSGIProcessGroup и перезапущу apache, он будет работать нормально, но во встроенном режиме, а не в режиме демона.