1

そこで、githubのOSクイックスタートからOSでflaskアプリケーションを作成しました。このアプリは私のローカルシステムでうまく機能します。アプリをOSにプッシュするとビルドされますが、ブラウザーでエラー500が発生します。

任意のアイデアや支援をいただければ幸いです。

アプリケーションファイルのソースコードは次のとおりです。

#!/usr/bin/python import os

virtenv = os.environ['APPDIR'] + '/virtenv/'
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages')
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
    execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
    pass

from run import app as application

これがrun.pyファイルからのソースです

from app import app 
app.run(debug = True)

ログからのエラーは次のとおりです(私のサイトのハッシュIDを削除しました):

[Sun Aug 05 15:46:08 2012] [error] * Running on http://127.0.0.1:5000/
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] mod_wsgi (pid=28484): Target WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application' cannot be loaded as Python module. 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] mod_wsgi (pid=28484): Exception occurred processing WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application'. 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] Traceback (most recent call last): 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application", line 13, in <module> 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] from run import app as application 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/run.py", line 2, in <module> 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] app.run(debug = True) 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Flask-0.9-py2.6.egg/flask/app.py", line 739, in run 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] run_simple(host, port, self, **options) 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Werkzeug-0.8.3-py2.6.egg/werkzeug/serving.py", line 613, in run_simple 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] test_socket.bind((hostname, port)) 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] File "<string>", line 1, in bind 
[Sun Aug 05 15:46:08 2012] [error] [client 127.3.153.129] error: [Errno 13] Permission denied 
[Sun Aug 05 15:46:09 2012] [error] * Running on http://127.0.0.1:5000/
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] mod_wsgi (pid=31302): Target WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application' cannot be loaded as Python module. 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] mod_wsgi (pid=31302): Exception occurred processing WSGI script '/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application'. 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] Traceback (most recent call last): 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/application", line 13, in <module> 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] from run import app as application 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/app-root/runtime/repo/wsgi/run.py", line 2, in <module> 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] app.run(debug = True) 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Flask-0.9-py2.6.egg/flask/app.py", line 739, in run
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] run_simple(host, port, self, **options) 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "/var/lib/stickshift/HASH-ID-HERE/ws/virtenv/lib/python2.6/site-packages/Werkzeug-0.8.3-py2.6.egg/werkzeug/serving.py", line 613, in run_simple 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] test_socket.bind((hostname, port)) 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] File "<string>", line 1, in bind 
[Sun Aug 05 15:46:09 2012] [error] [client 127.3.153.129] error: [Errno 13] Permission denied
4

3 に答える 3

2

だから私は最終的に自分のコードの何が問題だったのかを理解しました。run.py ファイルに行が欠けていたため、間違ったファイルは次のようになりました。

不適切なファイル:

from app import app
app.run()

これは修正された作業ファイルです。

from app import app
if __name__ == "__main__": #Need this line for Openshift
    app.run()

Apache などの運用サーバーにデプロイする場合は、if ステートメントが明らかに必要です。

于 2012-08-06T14:46:43.227 に答える
2

mod_wsgi でホストしている場合は、開発サーバーに組み込まれている Flask を実行しようとしないでください。戻って、Flask の mod_wsgi ドキュメントを確認し、何をしようとしているのかを確認してください。

http://flask.pocoo.org/docs/deploying/mod_wsgi/

于 2012-08-06T00:22:56.787 に答える
1

フラスコの Web サイトの次の説明を確認しましたか: http://flask.pocoo.org/docs/deploying/mod_wsgi/#working-with-virtual-environments

問題: アプリケーションがアクセス許可エラーを返す おそらく、アプリケーションが間違ったユーザーとして実行されていることが原因です。アプリケーションがアクセスする必要があるフォルダーに適切な権限が設定されていること、およびアプリケーションが正しいユーザーとして実行されていることを確認します (WSGIDaemonProcess ディレクティブのユーザーおよびグループ パラメーター)。

于 2012-08-06T01:01:49.847 に答える