54

我一直在尝试了解将 php 作为 apache 模块与其他模块加载的确切含义/目的。

当 php 作为 apache 模块安装时,究竟会发生什么?例如,每次php请求到来或单独加载php模块时都会读取php-ini文件吗?

4

3 回答 3

25

当 PHP 模块在 mod_php、FastCGI 和 FPM 中加载时读取 php.ini。在常规 CGI 模式下,必须在运行时读取配置文件,因为没有任何类型的预分叉进程。

我认为在 Web 服务器中将 PHP 作为模块运行的唯一真正优势是配置可能更容易。当您在 FastCGI 或 FPM 模式下运行它并且可以使用线程或事件(而不是分叉)Apache,或者当您可以完全抛弃 Apache 时,您会获得更好的性能。

于 2010-10-17T15:22:45.343 回答
14

此链接可能会有所帮助:http: //2bits.com/articles/apache-fcgid-acceptable-performance-and-better-resource-utilization.html

结论

如果纯粹的速度是您所追求的,那么请使用 mod_php。

但是,为了更好地使用资源和提高效率,请考虑迁移到 fcgid。

于 2011-09-14T14:29:59.360 回答
2

如果是 Apache 模块,则在加载模块时读取 php.ini。PHP CGI 使用 php 解释器可执行文件,就像任何其他 shell 脚本一样。由于每次调用都不涉及状态,因此在 CGI 的情况下每次都必须读取配置文件。

于 2010-10-17T15:25:00.640 回答