mod_wsgi 和 mod_php 一起运行-可能吗?

mod_wsgi 和 mod_php 一起运行-可能吗?

是否可以运行 apache 和 mod_wsgi 以及 mod_php 来同时提供 python 和 php 页面?

如果可以的话我可以在哪里找到有关此操作的信息?

答案1

是的,你可以混合。请参阅本节末尾的食谱:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

具体来说,AddHandler/mod_rewrite/WSGI 脚本修复方法。

这将允许 PHP 网站页面优先于任何没有 PHP 或静态资源通过 Python WSGI 应用程序的 URL。

答案2

我唯一能想到的是,一个请求只能由一个模块或另一个模块处理,因此您不能混合使用 PHP 和 WSGI 代码。这意味着如果您使用WSGIScriptAlias /myapp /some/where/app.wsgihttp://example.com/myapp/foo.php将由 mod_wsgi 或 mod_php 处理,而不是两者(最有可能由 mod_wsgi 处理)。这也意味着您的 WSGI 应用程序不能/

理论上,如果你能让 mod_php 充当 Apache 过滤器,你的 python 应用程序就可以输出适当的 PHP 内容类型标头 ( application/x-httpd-php) 和 PHP 代码,mod_php 会处理它,但我不确定这是否真的可以做到。我看到一个很多东西关于 mod_perl 以这种方式工作,但似乎您可能需要使用 SAPIapache2filter而不是默认的 apache2handler 来编译 PHP,但搜索 apache2filter 会出现很多错误报告和其他噪音,但我的 Google-fu 太弱了,无法找到关于如何编译、配置或使用它的说明。

否则,只需按照其指示进行设置:mod_wsgimod_php5。如果您的发行版提供了 apache、mod_php 和 mod_wsgi 的软件包,请使用它们并跳过编译步骤,除非您真的需要。如果您的发行版提供了,a2enmod它应该会为您完成大部分设置(至少是模块加载部分),但您需要WSGIScriptAlias自行设置。

相关内容