PHP 手册
后退 | 章 4. Unix 系统下的安装 | 前进

# CGI 和命令行设置

默认为将 PHP 编译为 CGI 程序。这将建立一个命令行解释器，可用于 CGI 处理或非 web 相关的 PHP 脚本。如果用户运行着一个 PHP 模块支持的 web 服务器，那通常为性能考虑应该使用模块方式。不过，CGI 版可以使 Apache 用户用不同的用户 ID 运行不同的 PHP 页面。

警告
如果使用 CGI 方式安装，则服务器对于某些可能的攻击是开放的。请阅读 CGI 安全一章以学习如何防御这些攻击。

自 PHP 4.3.0 起，PHP 有了一些重要的新增功能。又有了一个新的 SAPI 称为 CLI，和 CGI 程序同名。根据配置选项它安装在 {PREFIX}/bin/php，并在手册中 PHP 的命令行模式一章中有详细说明。更多细节请阅读该章节。

## 测试

如果将 PHP 编译为 CGI 程序，可以通过键入 make test 来测试你的编译。测试一下编译永远是个好主意。这样就可以在你的平台上及早捕捉到 PHP 的问题而不是以后再费力的解决。

## 基准测试

如果将 PHP 3 编译为 CGI 程序，可以通过键入 make bench 来进行一下性能的基准测试。注意如果默认打开了安全模式，则超过 30 秒的允许范围测试可能不能完成。这是因为 set_time_limit() 不能用于安全模式。用 max_execution_time 配置选项来为你自己的脚本控制此时间限制。make bench 会忽略配置文件。

> 注: make bench 仅能用于 PHP 3。

## 使用变量

某些服务器提供的环境变量没有定义在当前的 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。其它的变量均作为“供应商扩展（vendor extensions）”来对待。

后退 | 起点 | 前进
Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器 | 上一级 | 在 HP-UX 系统下的安装