2013-06-30 25 views
5

私はのチュートリアルに従って、mod_wsgiを使ってApacheに単純フラスコアプリを開発して展開しています。私は私のApacheの設定の欠陥に絞り込んだと思う。 helloflask.pyをコマンドラインから実行すると、正常に動作します。 localhost:5000の別のシェルからwget経由でアクセスでき、正しい応答が得られます。私はまた、他の仮想ホスト(非WSGI)稼働を持っているので、私は、Apacheは、私は次の構造を持って実行しており、ポート80Hello World - Flask/Apache/mod_wsgi - Apacheからの応答なし

上の他の要求に応答している知っている:

/sites/helloflask.mydomain.com 
    /helloflask 
     application.wsgi 
     helloflask.py 
     (rest of env from virtualenv) 
    /log 
     access.log 
     error.log 

helloflask.pyを:

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 

application.wsgi:

import os, sys, logging 
logging.basicConfig(stream=sys.stderr) 

PROJECT_DIR = '/sites/helloflask.mydomain.com/helloflask' 

activate_this = os.path.join(PROJECT_DIR, 'bin', 'activate_this.py') 
execfile(activate_this, dict(__file__=activate_this)) 
sys.path.append(PROJECT_DIR) 

from helloflask import app as application 

Apache設定: /etc/apache2/sites-available/helloflask.mydomain.com

<VirtualHost *:80> 
    ServerName helloflask.mydomain.com 

    WSGIDaemonProcess helloflask user=myuser group=myuser threads=5 
    WSGIScriptAlias//sites/helloflask.mydomain.com/helloflask/application.wsgi 

    <Directory /sites/helloflask.mydomain.com/helloflask> 
    WSGIProcessGroup helloflask 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
    </Directory> 
    LogLevel warn 
    ErrorLog /sites/helloflask.mydomain.com/log/error.log 
    CustomLog /sites/helloflask.mydomain.com/log/access.log combined 
</VirtualHost> 

私は、バーチャルホストを有効にApacheを再起動し、ブラウザからの応答がありません。 "サーバーが見つかりません"ので、500応答、何もありません。アクセスログ/エラーログにはエントリがありません(この仮想ホスト固有)。私は私が再起動するたびにログインする包括的なApacheのエラーで次のように得るか:

[Sat Jun 29 20:07:58 2013] [notice] caught SIGTERM, shutting down 
[Sat Jun 29 20:07:59 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+. 
[Sat Jun 29 20:07:59 2013] [warn] mod_wsgi: Runtime using Python/2.7.3. 
[Sat Jun 29 20:07:59 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations 

のPythonの異なるバージョンを示すこれら2 [警告]行は私の問題ですが、私は方法がわからない場合、私は思ったんだけどまたはそれを修正するために何を修正するか。どんな提案も感謝しています。

ありがとうございます!

答えて

5

helloflask.mydomain.comはどのIPを指していますか?あなたのhostsファイルに

127.0.0.1 helloflask.mydomain.com helloflask 

を追加する、とのはそれだった

http://helloflask.mydomain.com 
+0

でWebブラウザを指してみてください。面白いのは、誰かがこれに返信するのを待っている間、私は/ etc/hostsの問題を持つ別の人を助けました。彼はもっと明らかだった - 彼は "ホストするためのルートなし"のエラーを得ていたが、まだ..私はここでそれを考慮していたはずである。 www.mydomain.comが正常に動作していたため、問題ではないと思いました。 DNSとサブドメインを調べる必要があると思います。ありがとう! – David

+0

Apacheの問題と同じくらい、DNSの問題ではありませんでした。 ServerNameディレクティブのために、Apacheはhelloflask.mydomain.comのリクエストを探していましたが、127.0.0.1またはlocalhostを使用していたと推測しています。 –