第4章配置

本章目录
php3.ini文件
Apache模块
 
CGI
 
虚拟主机
安全问题

php3.ini文件

PHP解析器启动时读取php3.ini文件。对于以服务器模块方式运行的PHP,在web server启动时进行读取。CGI版本的PHP,每一次调用都发生读取。

在Apache的httpd.conf文件的配置指导中有和以下内容一致的部分,只是在下面的名字前加了php3_ 前缀 。

一般配置指导

auto_append_file string
指定在主文件被自动分析的文件的名字。这个文件就象被 include() 函数调用一样被包含,所以 include_path 被使用。

默认的值允许自动追加。

注意: 如果script程序以 exit()函数结束的话, 不会发生自动追加。

auto_prepend_file string
指定在主文件被自动分析的文件的名字。这个文件就象被 include() 函数调用一样被包含,所以 include_path 被使用。

默认的值不允许auto-prepending。

 
cgi_ext string
 
display_errors boolean
此项决定是否将出错信息和HTML输出一起在屏幕上显示。
doc_root string
PHP在服务器上的根目录。仅用于非空时。如果PHP被配置为 安全模式,任何此目录以外的文件不能使用PHP服务。
engine boolean
此项对做为Apache模块的PHP十分有用。用于站点对每个不同的目录或虚拟主机设定PHP解析器的开关状态。通过在httpd.conf文件中适当的地方加入php3_engine配置, 可以允许或禁止PHP程序的执行。
error_log string
记录script程序错误的文件名。程序错误会被记录下来。如果指定syslog, 则错误信息被记录到系统的错误记录中。这在UNIX系统中代表syslog(3) ,在Windows NT中代表事件记录。系统错误记录功能在Windows 95中不可用。
error_reporting integer
设置出错报告的级别。该参数是一个整形数字描述的bit值。把你想要报告的错误级别的bit值加起来。

Table 4-1. 出错报告的级别

bit值 错误类型
1 一般错误
2 一般警告
4 分析器错误
8 非紧急的关联模式警告

默认的值是 7 (一般错误,一般警告,分析器错误)。

open_basedir string
限定PHP只能打开指定目录树的文件.

当一个script程序试图打开一个文件,例如, fopen 或 gzopen时,该文件的位置会被检查。当该文件不在指定目录时,PHP将拒绝打开它。所有的symlink链接将被转换过来,所以无法通过 symlink的方法逃过这个限制。

特定的值 . 表示script程序存放的目录被做作为基本目录。

默认值是允许打开所有的文件。

gpc_order string
设置GET/POST/COOKIE变量解析的顺序。默认设置是 "GPC"。例如,将它设成"GP",将导致PHP完全忽略 cookies,并使用所有POST方法的变量覆盖GET方法中的同名变量。
include_path string
指定 require(), include()fopen_with_path() 函数寻找所需文件的一组目录。形式类似环境变量PATH: 一组用冒号分隔的目录名(指在UNIX中,在Windows中用分号)。

Example 4-1. UNIX include_path

include_path=.:/home/httpd/php-lib

Example 4-2. Windows include_path

include_path=.;c:\www\phplib

默认设置是 . (当前目录)。

isapi_ext string
 
log_errors boolean
设置是否把script程序的出错信息记录到服务器的error log文件。这个功能和采用服务器有关。
magic_quotes_gpc boolean
为GPC (Get/Post/Cookie)操作设置magic_quotes的状态。当magic_quotes允许时,所有的 ' (单引号), " (双引号), \ (反斜线) 和NUL被自动替换为一个反斜线号。如果magic_quotes_sybase也是允许的, a 一个单引号将被替换为一个反斜线号加一个单引号,及 ' 被替换为 \' 。
magic_quotes_runtime boolean
If magic_quotes_runtime is enabled, most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash. 如果magic_quotes_sybase也是允许的, a 一个单引号将被替换为一个反斜线号加一个单引号,及 ' 被替换为 \' 。
magic_quotes_sybase boolean
如果magic_quotes_sybase开关同时允许,且magic_quotes_gpc或 magic_quotes_runtime是允许的,那么单引号被替换为一个反斜线号加一个单引号,及 ' 被替换为 \' 。
max_execution_time integer
设置允许一个script程序运行的最长时间数(秒),超时的将被解析器强行终止。这能防止混乱的script程序阻塞服务器。
memory_limit integer
设置一个script程序允许分配的最大内存字节数。这能防止混乱的script程序耗尽系统可用内存。
nsapi_ext string
 
short_open_tag boolean
是否允许使用缩写的PHP标示符<? ?>。如果你在XML中混合使用PHP,就不得不关闭这个选项。你必须用长格式的PHP标示符 <?php ?> 了。
sql.safe_mode boolean
 
track_errors boolean
如果参数允许,最后的一条出错信息始终出现在全局变量 $php_errormsg中。
track_vars boolean
如果参数允许,GET, POST 和cookie的输入可以在各自对应的全局数组$HTTP_GET_VARS, $HTTP_POST_VARS$HTTP_COOKIE_VARS中找到。
upload_tmp_dir string
进行文件上载是临时文件存放的目录。该目录必须对任何PHP用户可写。
user_dir string
用户主目录下的PHP文件的目录名称,例如public_html
warn_plus_overloading boolean
如果参数允许,则在字符串使用加号(即 +)时会给出警告信息。这使你很容易发现script程序中的字符串操作应该使用"."连接符来重写的地方。
(译者注:就是说在PHP中字符串的连接符用".",而不是"+")

邮件配置指导

SMTP string
Windows版的PHP在执行邮件发送函数 mail() 时所使用的SMTP服务器的DNS名或IP地址。
sendmail_from string
Windows版的PHP在发送邮件时"From:"栏显示的mail地址。
sendmail_path string
sendmail在哪个目录下,通常是 /usr/sbin/sendmail /usr/lib/sendmailconfigure 程序会尝试找出这个目录并做默认设置,但是如果它失败了,你可以在此设置。

对于不使用sendmail程序的系统只要改为相应的程序即可。例如, Qmail 的用户可以将目录设为 /var/qmail/bin/sendmail

安全模式配置指导

safe_mode boolean
是否允许PHP安全模式。
safe_mode_exec_dir string
如果PHP运行于安全模式下, system()函数和一些其他函数,将拒绝执行不在这个目录下的系统程序。   

调试器配置指导

debugger.host string
调试器使用的DNS名或IP地址。
debugger.port string
调试器使用的端口。
debugger.enabled boolean
是否开放调试器。

扩展装载配置指导

enable_dl boolean
本指令仅用于Apache模块方式的PHP。你可以单独设定每个虚拟服务器或每个目录能否通过dl()函数动态装载PHP扩展模块。

关闭动态装载功能主要是出于安全性的考虑。使用动态装载时可以忽略所有的safe_mode和open_basedir的限制。

默认情况下除使用安全模式外都允许动态装载,在安全模式下, 不能使用 dl() 函数。

extension_dir string
PHP在哪个目录下查找扩充的动态装载库。
extension string
PHP启动时装入哪个扩充的动态装载库。

MySQL 配置指导

mysql.allow_persistent boolean
是否允许持续的MySQL连接。
mysql.max_persistent integer
每个MySQL进程最大的持续连接数。
mysql.max_links integer
每个MySQL进程最大的连接数,包含持续连接。

mSQL 配置指导

msql.allow_persistent boolean
是否允许持续的mSQL连接。
msql.max_persistent integer
每个mSQL进程最大的持续连接数。
msql.max_links integer
每个mSQL进程最大的连接数,包含持续连接。

Postgres 配置指导

pgsql.allow_persistent boolean
是否允许持续的Postgres连接。
pgsql.max_persistent integer
每个Postgres进程最大的持续连接数。
pgsql.max_links integer
每个Postgres进程最大的连接数,包含持续连接。

Sybase 配置指导

sybase.allow_persistent boolean
是否允许持续的Sybase连接。
Whether to allow persistent Sybase connections.
sybase.max_persistent integer
每个Sybase进程最大的持续连接数。
sybase.max_links integer
每个Sybase进程最大的连接数,包含持续连接。

Sybase-CT 配置指导

sybct.allow_persistent boolean
是否允许持续的Sybase-CT连接。
sybct.max_persistent integer
每个Sybase-CT进程最大的持续连接数。
sybct.max_links integer
每个Sybase-CT进程最大的连接数,包含持续连接。

BC 数学函数配置指导

bcmath.scale integer
所有bc数学函数的十进制数字。

浏览器兼容配置指导

browscap string
浏览器兼容文件的名字。

统一的 ODBC 配置指导

uodbc.default_db string
如果未在 odbc_connect()odbc_pconnect() 中指明的话,此参数表示ODBC数据源。
uodbc.default_user string
如果未在 odbc_connect()odbc_pconnect() 中指明的话,此参数表示用户名。
uodbc.default_pw string
如果未在 odbc_connect()odbc_pconnect() 中指明的话,此参数表示密码。
uodbc.allow_persistent boolean
是否允许持续的ODBC连接。
uodbc.max_persistent integer
每个ODBC进程最大的持续连接数。
uodbc.max_links integer
每个ODBC进程最大的连接数,包含持续连接。