7.7 PHP配置指令
PHP的配置指令控制着PHP在多个不同方面的行为,包括语言选项、安全模式、资源限制、错误处理和日志、数据处理、路径和目录、文件上传、Fopen包装器、动态扩展、模块设置、系统日志、数据库连接等。
7.7.1 语言选项(Language Options)
语言选项用于设定PHP语言的基本特性,可用指令如表7-1所示。
表7-1 PHP中的“语言选项”指令
7.7.2 安全模式(Safe Mode)
在多用户环境中部署PHP时,为了避免服务器受到攻击和破坏,通常可以将PHP设置为安全模式(也称受限模式)。
安全模式会自动禁用许多可能存在不安全因素的功能,例如安全模式下可以禁用parse_ini_file( )函数、chmod( )函数、chgrp( )函数、chown( )函数、exec( )函数、system( )函数以及反引号运算符。安全模式还将自动检测执行脚本的所有者与该脚本所访问的文件或目录的所有者是否一致。用于安全模式的指令如表7-2所示。
表7-2 PHP中的安全模式指令
7.7.3 资源限制(Resource Limits)
通常服务器资源是有限的,为了合理地使用服务器资源,防止资源被过度耗费,应该从以下三方面对执行脚本进行控制:脚本执行时间、脚本输入时间(解析时间)和分配的最大内存量。表7-3列出了PHP中使用的资源限制指令。
表7-3 PHP的资源限制指令
★ 注意 ★
指令max_execution_time所设定的时间上限不包括通过PHP命令(如exec( )或system( ))调用执行外部程序所花费的时间。
7.7.4 错误处理和日志(Error Handling and Logging)
PHP以一种更为灵活的方式报告和记录PHP在编译和运行时所产生的错误、警告以及提示。开发人员可以根据需要控制报告的敏感度,可以控制是否将信息显示在浏览器以及如何显示,还可以控制信息记录的方式:记录到文件中还是系统日志中。表7-4列出了控制错误处理和日志的相关指令。
表7-4 控制错误处理和日志的指令
表7-5 PHP的错误报告级别
7.7.5 数据处理(Data Handling)
PHP提供了一些用于对外部数据进行处理的配置指令。外部数据通常是指由GET、POST、COOKIE、操作系统或服务器所传递的数据。表7-6中列出了PHP中的一些数据处理指令及说明。
表7-6 PHP中的数据处理指令
7.7.6 路径和目录(Paths and Directories)
PHP提供了一些对默认路径进行设置的指令。默认路径包括用户Web目录、Web文档根目录以及导入函数库和扩展包的目录。表7-7中列出了一些用于设置路径和目录的指令。
表7-7 PHP中用于设置路径和目录的指令
7.7.7 文件上传(File Uploads)
PHP支持通过POST方式上传文件,表7-8中列出了用于设置文件上传的配置指令。
表7-8 PHP中的文件上传指令
7.7.8 Fopen包装器(Fopen Wrappers)
PHP提供了一些访问和处理远程文件的指令,如表7-9所示。
表7-9 PHP中访问和处理远程文件的指令
7.7.9 动态扩展(Dynamic Extensions)
PHP提供了实现动态扩展的配置指令extension,使用该命令可以自动地加载指定模块(扩展包)。该指令的语法格式如下所示:
extension=modulename.extension
其中“modulename”指需要自动加载的模块名,“extension”指定模块的扩展名。extension指令的作用域为PAP_INI_ALL,默认值为NULL。例如在Windows下自动加载MySQL模块如下所示:
extension=msql.dll
在Linux环境下,自动加载MySQL模块如下所示:
extension=msql.so
★ 注意 ★
仅在php.ini中通过extension指令并不一定能够成功启用模块。模块能否正确启用,还依赖于其相应的软件是否已成功安装到系统中。
7.7.10 邮件功能(Mail function)
PHP提供了mail( )函数,可以通过PHP脚本发送电子邮件。表7-10中列出了对邮件功能进行配置的PHP指令。
表7-10 邮件配置指令