Windows では正常に動作することを明確にしたいだけですが、このスクリプトを VPS にデプロイしようとすると失敗します。
「mainwebapp」であるメインWebアプリケーションインスタンスにマッピングを追加すると機能するため、ちょっと奇妙ですが、それをサブアプリケーションに追加するたびに、webpy「Not Found」として表示され、このため壁。
WindowsにはWamp 2.2があります。私のVpsには、CentOS 5、uWsgiを備えたnginx、およびWindowsからの同じPython(2.7)およびWebpyバージョンがあります。
Vps で apache/mod_wsgi に切り替えると、Wamp ローカル サーバーと同様に動作するため、これは nginx/uwsgi の問題であるとほぼ確信しています。
これまでのところ、これは私がテストしてきたコードです。非常に単純なものです。
class subappcls:
def GET(self):
return "This will also be shown fine"
sub_mappings = (
"/subpath", subappcls
)
#subclass web app
subwebapp = web.application( sub_mappings, globals() )
#mapped clas
class mapped_cls:
def GET(self):
return "this mapped sub app will not be found"
#Here I add mappings:
subwebapp.add_mapping("/mapped_sub_path", mapped_cls
class appcls:
def GET(self):
return "main app"
main_mappings = (
"/subapp", subwebapp,
"/app", appcls
)
mainwebapp = web.application( main_mappings, fvars=globals() )
class indexcls:
def GET(self):
return "this will be shown just fine"
mainwebapp.add_mapping("/another",indexcls)
application = mainwebapp.wsgifunc()
アクセスすると:
/subapp/subpath #動作します
/subapp/mapped_sub_path #動作しません
これはうまくいきます:
/アプリ
/別
これは uwsgi ログです: * [2012 年 12 月 4 日火曜日 18:41:52] の uWSGI 1.3 (64 ビット) バージョン: 4.1.2 20080704 (Red Hat 4.1.2-52) で 2012 年 11 月 24 日 02:21:31 でコンパイル OS: Linux-2.6.18-194.17.4.el5xen #1 SMP Mon Oct 25 16:36:31 EDT 2010 警告: uWSGI を root として実行しています!!! ( --uid フラグを使用) プロセス数の制限は 32832 メモリ ページ サイズは 4096 バイト 検出された最大ファイル記述子数: 1024 ロック エンジン: pthread 堅牢なミューテックス uwsgi ソケット 0 UNIX アドレス /tmp/app.sock にバインド fd 3 Python バージョン: 2.7.3 (デフォルト、 2012 年 10 月 30 日、06:37:20) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] Python スレッドのサポートが無効になっています。--enable-threads * で有効にできます
編集: --enable-threads パラメータでスレッドを有効にしましたが、どちらも機能しませんでした。
前もって感謝します。