如何高效地通过多个框架/模板引擎提供页面

我想呈现一个同时具有PHP标签和Web2Py标签的文件。

要做到这一点,我希望Web服务器通过Web2Py,然后通过PHP文件。 我发现了一种通过Python从Web2py调用PHP的方法(基于在django之上运行PHP的方法),但是这种方法失去了从mod_php或者FastCGI(如caching和multithreading操作)的任何服务器优化的好处。 为每个PHP请求创build一个新进程,这个进程非常缓慢。

有没有更好的方式来有效地呈现Web2Py(Python)和PHP标签在同一个文件中的页面? 注意我没有find从同一个服务器/域提供仅限PHP和Web2Py的文件的方法。 我更喜欢Apache2或Cherokee的解决scheme。 不过,我愿意使用其他Web服务器。

背景信息:我更喜欢在Web2Py中开发,但是我们有用PHP编写的这个预先存在的系统。 我想用一些Web2Py的function(如authauthentication/用户pipe理和T()国际化对象)来扩充PHP系统。 另外,如果可以逐步完成的话,将PHP项目移植到Web2Py将会更容易。 由于PHP项目由多个文件组成,如果不需要修改,这将大有帮助。

解决这个问题的最好方法是分离出传统的PHP位,并使用(例如)jQuery来通过asynchronousJavaScript调用加载它们。 configuration你的web服务器通过两种不同的环境来处理相同的页面请求可能是非常困难的,即使你确实得到它的工作,我猜也是会严重降低性能,正如你已经指出的那样。

CGI接口(PHP,Python,或任何你使用的)接受input并转换成输出。 所以顺序连接一个应该是可能的。

不幸的是,我不能给你任何明确的细节。 咱们试试吧:

Apache2s fcgid_module提供了CGI。

FcgidInitialEnv PHPRC "/path/to/php/conf" FcgidWrapper "/path/to/php/php-cgi" .php 

这里有两个选项:

  • 一个合适的cgi-wrapper调用第一个,然后另一个(python和php)。
  • networking服务器允许级联cgi包装器或wsgi&cgi。

关于fcgid的文档声明“指令可以多次使用”,但我不确定是否包含为同一个文件后缀调用多个cgi脚本。

现在,不知道你如何调用python。 但是wsgi也只是一个调用接口。