Php 简明教程
PHP.INI File Configuration
在计算机上安装 PHP 软件后,就会在安装目录中创建 php.ini。对于 XAMPP,php.ini 位于 c:\xamm\php 文件夹中。这是一个重要的配置文件,它控制着性能并设置所有与 PHP 相关的参数。
phpinfo() 函数显示一个不同的参数列表及其 PHP、Aache、MySQL 和 Web 服务器安装的其他部分的当前值。
运行以下代码以显示设置,其中一个设置显示“php.ini”文件的路径:
<?php
echo phpinfo();
?>
Loaded Configuration File
查找指明php.ini 文件所在位置的已加载配置文件设置
C:\xampp\php\php.ini
PHP 行为的不同方面由大量的参数(称为指令)配置。“php.ini”文件以分号(;)符号开头的多数行开头 - 表示该行已注释。未注释的行实际上是有效的指令及其值。换句话说,要激活并为特定指令指定值,请删除前导分号。
directive = value
指令名称区分大小写。指令是在变量中用于配置 PHP 或 PHP 扩展。请注意,没有名称验证,因此如果没有找到预期的指令,将使用默认值,它可以是字符串、数字、PHP 常量(例如 E_ALL 或 M_PI)、其中一个 INI 常量(开、关、真、假、是、否和无)。
实际上,C:\XAMPP\PHP 文件夹包含两个 INI 文件,一个用于生产环境,另一个用于开发环境。
php.ini-development.ini 与它的生产版本非常相似,除了在错误方面更加详细。在开发阶段,将其复制为 php.ini 以便能够跟踪代码中的错误。一旦代码准备就绪,可以使用 php.ini-production.ini 文件作为有效的 php.ini 文件,这在很大程度上抑制了错误消息。
php.ini 中的指令分为不同的类别,如错误处理、数据处理、路径和目录、文件上传、PHP 扩展和模块设置。
以下是“php.ini”文件中一些重要指令的列表:
safe_mode = Off
如果设置为开,您可能使用 --enable-safe-mode 标志编译了 PHP。安全模式最适用于 CGI 用途。请参见本章前面的“CGI 编译时选项”部分中的说明。
safe_mode_exec_dir = [DIR]
此选项仅在安全模式开启时才相关;它也可以在 Unix 构建过程中使用 --with-exec-dir 标志设置。处于安全模式的 PHP 仅会从该目录中执行外部二进制文件。默认值为 /usr/local/bin。这与提供正常的 PHP/HTML 网页无关。
safe_mode_protected_env_vars = [LD_LIBRARY_PATH]
此选项设置用户在安全模式下不可更改的环境变量,即使 safe_mode_allowed_env_vars 设置为宽松的模式。
disable_functions = [function1, function2…]
PHP4 配置的一个受欢迎的补充,也是在 PHP5 中延续的一个补充,就是出于安全性考虑禁用选定功能的能力。以前,这需要手动编辑 PHP 所基于的 C 代码。文件系统、系统和网络功能可能应该首先启用,因为允许通过 HTTP 编写文件和更改系统从来都不是一个安全的想法。
max_execution_time = 30
函数 set_time_limit() 在安全模式下不可用,因此这是在安全模式下使脚本超时的主要方法。在 Windows 中,您必须根据消耗的最大内存而非时间中止执行。如果您使用 Apache,也可以使用 Apache 超时设置来超时,但这也会应用于网站上的非 PHP 文件。
error_reporting = E_ALL & ~E_NOTICE
默认值为 E_ALL & ~E_NOTICE,所有错误,不包括通知。开发服务器应至少设置为默认值;仅正式服务器才能考虑使用较低的值。
variables_order = EGPCS
此配置设置取代了 gpc_order。这两个设置现在与其 register_globals 一起弃用。它设置了不同变量的顺序:环境、GET、POST、COOKIE 和 SERVER(也称为内置)。您可以更改此顺序。
变量将按照从左到右的顺序逐个覆盖,最右边的每次都赢得比赛。这意味着,如果您保留默认设置并碰巧为环境变量、POST 变量和 COOKIE 变量使用了相同名称,那么在进程结束时,COOKIE 变量将拥有该名称。实际生活中,这种情况很少发生。
register_globals = Off
此设置允许您决定是否将 EGPCS 变量注册为全局变量。此设置现在已弃用,从 PHP4.2 开始,此标志默认设置为关。请改用超级全局数组。本书中的所有主要代码列表都使用超级全局数组。
magic_quotes_gpc = On
此设置转义传入 GET/POST/COOKIE 数据中的引号。如果您使用许多可能会提交给自己或其他表单并在表单值中显示的表单,您可能需要将此指令设置为开,或者准备对字符串类型数据使用 addslashes()。
magic_quotes_runtime = Off
此设置转义传入数据库和文本字符串中的引号。记住,SQL 在存储字符串时会对单引号和撇号添加斜杠,在返回时不会去除。如果此设置关闭,您需要在从 SQL 数据库输出任何类型的字符串数据时使用 stripslashes()。如果将 magic_quotes_sybase 设置为开,则此设置必须关闭。
magic_quotes_sybase = Off
此设置不对传入数据库和文本字符串中的单引号使用反斜杠,而是使用 Sybase 样式的单引号。如果将 magic_quotes_runtime 设置为开,则此设置必须关闭。
auto-append-file = [path/to/file]
如果此处指定了路径,PHP 必须在每个 PHP 文件的末尾对其 include(),除非您使用 exit() 函数转义。包括路径限制适用。
include_path = [DIR]
如果您设置此值,您将只能从这些目录包含或需要文件。包含目录通常位于您的文档根目录下;如果您在安全模式下运行,则这是强制性的。将其设置为。,以便包含与您的脚本所在的相同目录中的文件。多个目录使用冒号分隔:.:/usr/local/apache/htdocs:/usr/local/lib。
doc_root = [DIR]
如果您使用 Apache,您已经在 httpd.conf 中为该服务器或虚拟主机设置了文档根目录。如果您在使用安全模式或希望仅启用您网站的一部分的 PHP(例如,仅在 Web 根目录的一个子目录中),请在此处设置此值。