2017-04-16 28 views
0

私は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)アプリケーションをセットアップしたことが奇妙ですが、明らかにこのテストでは何か不足しています。

+1

あなたが追加したものに関連してDjangoの設定はどこに定義されていますか? Djangoアプリケーションが '/'のパスにある場合、ここで追加するものはその前になければなりません。そうでなければ、Djangoアプリケーションの '/'のマッチングが優先されます。 –

+0

[WSGIScript]エイリアスは 'VirtualHost *'では定義されていましたが、VirtualHost *:433では定義されていませんでした(サーバーはSSLを使用しています)。 'VirtualHost *:433ファイルにそれらを追加することで修正されました。しかし、提案をありがとう、良いことを覚えておいてください! – Nathan

答えて

0

これは代わり<VirtualHost *>構成下WSGIScriptAliasを有するWSGIScriptAliasライン(サーバーがSSLを使用するように)、含むこと<VirtualHost *:443>設定ファイルを更新することで解決しました。

私はすべてのエイリアスが機能に443ポートに含まれる必要があることを認識していませんでしたが、最終的に彼らはで定義されたファイルバニラAliasとロケでプレーした後、それを働いた:

grep -R "Alias" /etc/apache2/* 
関連する問題