私はApacheでWSGIScriptAliasを設定する際に問題に遭遇しています。ここで、別名を使用しようとすると "リテラル" URLに到達しようとすると404エラーが発生します。ここに私のApache2のsites-available/000-default.conf
におけるテスト・セット・アップは、(mod_wsgi Quick Start Guideを模倣する)です:WSGIScriptAliasが効果を持たないのはなぜですか?
DocumentRoot /var/www/html
WSGIScriptAlias /wsgi_test /var/www/html/test.wsgi
<Directory /var/www/html>
Order allow,deny
Allow from all
</Directory>
のApache2を再起動し、mydomain.com/wsgi_test
に行く後、404ページが表示されます。 Apacheのerror.log
ファイルの最初の行は、以下のサーバがDocumentRoot
にURLパスwsgi_test
にアクセスしようとして示し、ないエイリアスファイルパス:ファイル/var/www/html/test.wsgi
は、上記のクイックスタートガイドと同じコードを持つ
AH00128: File does not exist: /var/www/html/wsgi_test
AH01964: Connection to child 1 established (server nathanclonts.com:443)
(70007)The timeout specified has expired: [client 67.161.148.188:33883] AH01991: SSL input filter read failed.
:誰もが提案を持っています
-rwxrw-r-- 1 username www-data 278 Apr 16 11:31 test.wsgi
:に設定する権限を持つ
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
これに影響を与えるかもしれない他の設定やその他のデバッグのヒントを探す場所はどこですか?
私は同じVirtualHostで現在動作しているmod_wsgiで別の(Django)アプリケーションをセットアップしたことが奇妙ですが、明らかにこのテストでは何か不足しています。
あなたが追加したものに関連してDjangoの設定はどこに定義されていますか? Djangoアプリケーションが '/'のパスにある場合、ここで追加するものはその前になければなりません。そうでなければ、Djangoアプリケーションの '/'のマッチングが優先されます。 –
[WSGIScript]エイリアスは 'VirtualHost *'では定義されていましたが、VirtualHost *:433では定義されていませんでした(サーバーはSSLを使用しています)。 'VirtualHost *:433ファイルにそれらを追加することで修正されました。しかし、提案をありがとう、良いことを覚えておいてください! – Nathan