PHP作为CGI二进制与PHP作为Apache模块

PHP作为CGI二进制文件运行相比,将PHP作为Apache模块运行有什么好处? 在那儿:

  1. 安全性好处?
  2. 稳定性好处?
  3. 性能好处?

我一直安装和使用PHP作为Apache模块,所以我很好奇,是否有任何理由让我将PHP作为CGI二进制文件用于未来的工作。

谢谢!

当PHP用作模块时,它或多或less被编译到Apache的代码本身中。 它被加载的每一个请求,这意味着它甚至加载图像,脚本,样式表和任何其他非PHP的文件。 它使这些页面服务更慢。 另一方面,它使PHP更快,因为Apache不必产生额外的进程。

当PHP用作CGI二进制文件时,它更安全,但速度更慢。 Apache可以在不同的用户下产生进程,例如,可以提高共享主机环境的安全性。 它也提高了稳定性,因为PHP进程与Apache是​​分开的,在发生段错误或其他硬性崩溃的情况下,PHP进程不会影响Apache。 使用PHP作为CGI意味着您不能使用.htaccess文件使用php_flagphp_valueconfigurationPHP。

问题是,对你更重要的是什么。 速度或安全。

如果您search在CGI或Google模块中使用PHP的好处,我相信您会发现很多很棒的文章,可能会涵盖我可能错过的东西。

通常你有3个选项: – php作为web服务器的模块(apache或iis) – > mod_php – cgi(旧式每次启动二进制) – fast-cgi(更优化的二进制)

通过fast-cgi我们意味着它是没有任何fpm代理等的apache的fast-cgi。

在这两种CGI模式下,你的HTTPauthentication脚本都不能工作。

Fastcgi比CGI更好,但是可能会发生500个错误。

稳定性和性能mod_php更好。