我一直认为 PHP 作为 Apache 模块安装效果更好,但最近,本地论坛上的某个人指出,将 PHP 作为 CGI 运行在安全方面更好。我做了一些谷歌搜索,似乎Dreamhost 默认其 PHP 安装为通过 CGI 工作。现在我有点困惑。
据我了解(我不是系统管理员,只是一名 Web 开发人员),当 PHP 作为 Apache 模块安装时存在用户权限问题。通过 CGI 使用 PHP 时存在速度问题(或者确实如此)。
现在推荐的安装 PHP 的方法是什么?在共享主机和专用主机上。
我一直认为 PHP 作为 Apache 模块安装效果更好,但最近,本地论坛上的某个人指出,将 PHP 作为 CGI 运行在安全方面更好。我做了一些谷歌搜索,似乎Dreamhost 默认其 PHP 安装为通过 CGI 工作。现在我有点困惑。
据我了解(我不是系统管理员,只是一名 Web 开发人员),当 PHP 作为 Apache 模块安装时存在用户权限问题。通过 CGI 使用 PHP 时存在速度问题(或者确实如此)。
现在推荐的安装 PHP 的方法是什么?在共享主机和专用主机上。
将 PHP 作为一个模块运行通常更有效,但这意味着所有脚本都在同一个用户帐户下运行(Apache 运行的任何帐户),这可能会在共享环境中造成安全问题。
CGI 的速度要慢得多,因为它会为每个需要的请求启动一个新的 PHP 进程,但可以配置为以拥有它的用户身份运行每个脚本,这在共享环境中会更加安全。
FastCGI 的设置可能更麻烦,但接近作为 PHP 模块运行的速度。
一般来说,您想要运行 CGI 的唯一原因是在共享环境中。
这允许您拥有 suEXEC 样式(请参阅:suPHP)安排,其中脚本仅作为所有者的 UID/GID 执行,并且对文件系统上的任何其他内容具有有限的权限。
否则 mod_php 效率更高,通常更容易调试。
使用 FastCGI,我可以在不重新启动服务器的情况下重新启动 PHP(只需终止 PHP 进程,服务器会注意到它并立即重新启动它们)。