Apache2 + PHP 5.3下高效的权限分离

Apache2 + PHP 5.3下高效的权限分离

从安全性和性能角度来看,设置具有 Apache2 安全性和性能的特权分离、共享环境的首选方法是什么?我想在不同的用户/组下运行每个虚拟主机并尽快处理 PHP 请求。

答案1

我更倾向于使用 FastCGI + php-fpm。使用 php-fpm,您可以将每个池设置为侦听单独的端口(或套接字),并定义用户/组以及池的其他参数(例如 chroot 目录、php_openbasedir、要启动的服务器、环境变量、内存限制等)。在 Apache 中设置 FastCGI,并使用 FastCGIExternalServer 指向您希望使用的特定 php-fpm 池。(为每个虚拟主机创建一个池,使用正确的用户/组和其他限制(open_basedir、chroot 等)。

(我相信之前的选项是带有 suexec 的 FastCGI,但 php-fpm 确实提供了相当大的改进)。

值得注意的是,FastCGI 实际上在处理单个请求时比 mod_php 慢 - 但是,它通常足够快,并且可以比 mod_php 更好地处理并发性。

答案2

使用 MPM-ITK:http://mpm-itk.sesse.net/

如何使用:https://linux-help.org/wiki/web-servers/apache-httpd/php-using-mpm-itk

ITK 使用自定义用户和组为每个虚拟主机执行 apache fork。

相关内容