我只是想明确一点,在 Windows 中,工作正常,但是当我尝试在我的 VPS 中部署这个脚本时它失败了。
这有点奇怪,因为如果我将映射添加到“mainwebapp”的主 Web 应用程序实例,它就可以工作,但是每当我将它添加到任何子应用程序时,它都会显示为 webpy“Not Found”,我正在用头撞墙因为这个。
在 Windows 中,我有 Wamp 2.2。在我的 Vps 中,我有 CentOS 5、带有 uWsgi 的 nginx 以及来自我的 Windows 的相同 Python(2.7) 和 Webpy 版本。
我几乎可以肯定这是 nginx/uwsgi 的问题,因为当我在我的 Vps 中切换到 apache/mod_wsgi 时,它也可以像在我的 Wamp 本地服务器中一样工作。
到目前为止,这是我一直在测试的代码,非常简单:
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 日志: * 在 [Tue Dec 4 18:41:52 2012] 开始 uWSGI 1.3 (64bit) 使用版本编译:4.1.2 20080704 (Red Hat 4.1.2-52) 于 2012 年 11 月 24 日 02:21:31 操作系统:Linux-2.6.18-194.17.4.el5xen #1 SMP Mon Oct 25 16:36:31美国东部时间 2010 警告:您正在以 root 身份运行 uWSGI !!!(使用 --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 参数启用了线程,但也没有工作。
提前致谢。