在过去的两年里,我用 Python 构建了一个 App Engine 应用程序。很快就可以在 App Engine 上使用 PHP。我想将现成的 PHP 应用程序(例如 Wordpress、Mediawiki 和 phpBB)与我的 Python 应用程序一起使用。对于用户来说,她将两个应用程序(Python 或 PHP)中的哪一个用于特定页面应该是透明的。我认为 Python 应用程序是我将在其中进行大部分编程的主要应用程序。这是因为我对 Python 有更多的经验,也因为我已经为 App Engine 编写了很多可重用的代码。
目前我的方法是在 Python 中构建一个代理来映射 HTTP 请求,如下所示:
http://www.yellow.com/blog/*
至http://phpapp.appspot.com/wordpress/client1/*
http://www.yellow.com/community/*
至http://phpapp.appspot.com/phpbb/client1/*
yellow.com
是映射到我的 Python 应用程序的域。
http://www.blue.com/wiki/*
至http://phpapp.appspot.com/mediawiki/client2/*
http://www.blue.com/*
至http://phpapp.appspot.com/wordpress/client2/*
blue.com
是映射到我的 Python 应用程序的域。
除了博客、社区或维基,还有很多不需要 PHP 的 URL。这些 URL 由 Python 应用程序处理。例如:http://www.yellow.com/admin/*
。
我仍在努力使用代理在两个应用程序之间正确传递 cookie,但我认为可以做到这一点。
如果我能让它以这种方式工作,那就太棒了。然而,在我看来,这并不是处理这个问题的最优雅的方式。我知道我可以使用子域来服务 PHP 应用程序,但我宁愿只使用 URL 模式。此外,使用代理方法,我可以在将 PHP 应用程序返回的 HTML 提供给用户之前对其进行调整。这种方法的另一个优点是能够将 PHP 应用程序的页面缓存在 memcache 中。
我想听听您对我将 Google App Engine(自定义)Python 和(现成的)PHP 应用程序一起使用的方法的看法。我会遇到代理问题(Javascript、cookie、...)吗?例如,使用 PHP 编写的自定义插件(插件可以从 Python 应用程序获取数据)在 Wordpress 中构建所有内容会更好吗?其他建议?