組み込みモードでapache2 + mod_wsgiを使用して作成および実行したPython WSGIアプリを持っています。それをデーモンモードで実行しようとしています。
問題は、構成 (以下) では、アプリを表示する代わりに、デフォルトの Apache2 が表示されることです。このページは、その運用状況を熱心に述べているにもかかわらず、間違っています。
アプリ名と URL などのみをサニタイズしたので、使用している apache conf 全体が表示されます。
<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)
編集: Python 2.6.5 を使用した mod_wsgi 2.8 と Python 2.7.3 を使用した mod_wsgi 3.3 の両方でこの問題が発生したことにも注意してください。
編集 2: /static/ のエイリアスはまだ機能しているため、まだ VirtualHost にアクセスしているように見えます。WSGIProcessGroup ディレクティブをコメントアウトして Apache を再起動すると、正常に動作しますが、デーモン モードではなく組み込みモードで動作します。