0

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 パラメータでスレッドを有効にしましたが、どちらも機能しませんでした。

前もって感謝します。

4

1 に答える 1

1

問題はリロードにあるようです。次のコードは、統合された開発サーバーで (コマンドを使用してpython code.py)実行すると機能します。

import web


web.config.debug = False  # turns off the reloader


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 class
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, globals())


class indexcls:
    def GET(self):
        return "this will be shown just fine"

mainwebapp.add_mapping("/another", indexcls)


if __name__ == "__main__":
    mainwebapp.run()
else:
    application = mainwebapp.wsgifunc()

ランニングカール:

curl http://localhost:8080/subapp/mapped_sub_path
this mapped sub app will not be found
于 2012-12-04T21:14:26.453 に答える