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