在apache上运行带有mod_wsgi的cherrypy以及另一个php应用程序.cherrypy应用程序不是安装在root上,而是安装在apache配置文件中通过WSGIScriptAlias的"localhost/apps/myapp"之类的东西上.
在testapp.py中,我尝试了以下操作,当我尝试在浏览器中访问localhost/apps/myapp时:
app = cherrypy.tree.mount(MyApp(), '', 'settings.config') #FAILS WITH 404
Run Code Online (Sandbox Code Playgroud)
和
app = cherrypy.tree.mount(MyApp(), '/apps/myapp', 'settings.config') # WORKS
Run Code Online (Sandbox Code Playgroud)
第一种情况失败,因为cherrypy期望位于服务器根目录,而不是相对于通过Apache中的WSGI挂载的位置.
是否有一种首选方法可以使cherrypy应用程序相对于它们在WSGIScriptAlias下的apache中安装的路径有效?
基本上,我将在几个不同的路径下运行几个cherrypy应用程序,并且更喜欢apache处理调度(即cherrypy只运行应用程序并且不担心相对路径).这样,每次服务器上的一些相对路径发生变化时,我都可以避免更新几个不同的python文件/配置文件.
有什么建议?
顺便说一句,cherrypy app目前传递给wsgi应用程序,如下所示:
app = cherrypy.tree.mount(HelloWorld(), '', 'settings.config')
return app(environ, start_response)
Run Code Online (Sandbox Code Playgroud)