私は、アプリケーションアカウントの下でlinux apache 2.4.12とmod_wsgi 4.5.2(mod_wsgi.soがApacheにインストールされています)を持っています。 Apacheは、アプリケーションアカウントの下でポート8050で動作します。テストmod_wsgiへのこのリンクに続いて:http://modwsgi.readthedocs.org/en/develop/user-guides/quick-configuration-guide.html#wsgi-application-script-fileと私はURL:http://mytest.mydomain.com:8050/myappを入力しました。それは "Hello World"を表示したので、私のmod_wsgiのインストール作業を示しました。次に、私はフラスコの塗布作業をすることができるかどうかを試しました。Pythonフラスコアプリケーションをlinuxのapacheとmod_wsgiで設定する
私は家/ MYUSERID/WSGI /下に簡単なhello.pyファイル作成:その後、私はのような簡単なWSGIファイルを作成し
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
を:
import sys, os
sys.path.insert(0, "/home/myuserId/wsgi")
from hello import app as application
その後、私はこれを含め、他の提案に従っhttp://flask.pocoo.org/docs/0.10/deploying/mod_wsgi/私のapache http.confファイルをvirtualhostで設定する:
<VirtualHost *:8050>
# ServerName www.example.com
WSGIDaemonProcess hello user=appuser group=appuser threads=5
WSGIScriptAlias//home/myuserId/wsgi/hello.wsgi
<Directory /home/myuserId/wsgi>
WSGIProcessGroup hello
WSGIApplicationGroup %{GLOBAL}
Require all granted
Options +ExecCGI
AddHandler wsgi-script .wsgi
</Directory>
</VirtualHost>
私はhttpd.confファイルを入手して、Apache w/oエラーを再起動しました。私はクロームでURLを入力した場合:http://mytest.mydomain.com:8050/helloまたはhttp://mytest.mydomain.com:8050/hello_world、私はこのエラーを得た:
**Not Found**
The requested URL /hello was not found on this server.
Apache/2.4.12 (Unix) mod_wsgi/4.5.2 Python/2.7.9 Server at mytest.mydomain.com port 8050.
は、私の質問は以下のとおりです。
- 間違って私の設定ですか?
- 上記のhelloフラスコアプリケーションを使用するための正しいURLは何ですか?
WSGIScriptAlias /hello /home/myuserId/wsgi/hello.wsgi
はhelloアプリケーションをマウントしようとしましたが、見つかりませんでした。- フラスコアプリのために、なぜconfファイルがアプリケーションをVirtualHostにconfする必要がありますか?
私はVirtualHostタグをコメントアウトしました。 VirtualHostを使用して、ServerName mytest.mydomain.comを追加しましたが、動作しませんでした。しかし、VirtualHostについて言及して以来、私は別のWebアプリケーションを次のようにリバースプロキシで設定しています: ProxyPreserveHost On ProxyPass http:// localhost:8040/mywebapp/ProxyPassReverse http:// localhost: 8040/mywebapp/ VirtualHost>このVirtualHostをコメントアウトすると、wsgi virtualHostが機能しました。どうすれば一緒に仕事をすることができますか?あなたの返信とmod_wsgiの提供に感謝します。 –
user3400152
同じリスナーポート上にあるがホスト名が異なる場合は、それぞれに異なるServerNameを設定します。それ以外の場合は、2つのVirtualHostがURL名前空間の異なる部分をカバーする場合は、2つのVirtualHostを1つにマージします。 –
ありがとうございます。できます。 – user3400152