默认情况下,PHP 同时构建为 CLI 和 CGI 程序,可用于 CGI 处理。如果您正在运行 PHP 具有模块支持的 Web 服务器,则出于性能原因,您通常应该选择该解决方案。但是,CGI 版本使用户能够以不同的用户 ID 运行不同的启用 PHP 的页面。
以 CGI 模式部署的服务器容易受到多种潜在漏洞的攻击。请阅读我们的 CGI 安全部分,了解如何防御此类攻击。
如果您已将 PHP 构建为 CGI 程序,则可以通过键入 make test 来测试您的构建。测试您的构建始终是一个好主意。这样,您就可以尽早发现 PHP 在您平台上的问题,而无需以后再费力解决。
一些 服务器提供的环境变量 在当前的 » CGI/1.1 规范 中未定义。仅在其中定义了以下变量:AUTH_TYPE、CONTENT_LENGTH、CONTENT_TYPE、GATEWAY_INTERFACE、PATH_INFO、PATH_TRANSLATED、QUERY_STRING、REMOTE_ADDR、REMOTE_HOST、REMOTE_IDENT、REMOTE_USER、REQUEST_METHOD、SCRIPT_NAME、SERVER_NAME、SERVER_PORT、SERVER_PROTOCOL 和 SERVER_SOFTWARE。其他所有内容都应视为“供应商扩展”。