简介
PHP INI (Initialization) 是一种用于设置和调整 PHP 运行时的配置选项的机制。这些配置选项对于 PHP 应用程序的性能、安全性和功能具有关键作用,因此正确理解并适当地管理它们是非常重要的。本文档旨在为您提供深入理解和管理 PHP INI 配置的指导。
基础知识
PHP INI 文件位置
PHP INI 配置由一个或多个 INI 文件定义,这些文件包含了一系列的键值对,每一对代表一个配置选项。根据您的操作系统和服务器环境不同,PHP INI 文件可能位于不同的位置。
通常,您可以在 PHP 命令行界面中使用 php --ini
命令来查找加载的配置文件:
$ php --ini
Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File: /etc/php/7.4/cli/php.ini
Scan for additional .ini files in: /etc/php/7.4/cli/conf.d
Additional .ini files parsed: /etc/php/7.4/cli/conf.d/10-opcache.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
...
在上述示例中,主要的 INI 文件位于 /etc/php/7.4/cli/php.ini
,而附加的 INI 文件位于 /etc/php/7.4/cli/conf.d/
目录下。
INI 语法规则
INI 文件遵循一种简单的键值对格式,其中每行包含一个配置选项及其相应的值:
directive = value
-
directive
: 配置指令或设置的名称。 -
value
: 配置指令所对应的值。
注意,每行只能包含一个配置选项,并且在等号两侧不允许有空格。
INI 文件分层结构
PHP INI 文件可以按照一定的优先级进行加载和解析,形成分层结构。通常,这些文件被分为三个层次:
-
系统配置: PHP 安装时自带的默认 INI 文件(例如
php.ini-development
)。 - 全局配置: 服务器级别的 INI 文件,影响所有运行在该服务器上的 PHP 应用程序。
- 本地配置: 针对单个应用程序或虚拟主机的 INI 文件。
这些层次从低到高依次覆盖,即更高层次的配置将覆盖低层次的相同配置选项。
PHP INI 常用配置指令
性能设置
-
memory_limit
: 定义了 PHP 脚本可以使用的最大内存量,超过此限制将引发致命错误。默认值为 128MB,但对于需要处理大型数据集或长时间运行的应用程序,可能需要增加此值。 -
max_execution_time
: 定义了 PHP 脚本可以执行的最长时间(秒)。如果脚本在超过此限制后仍未完成,将被终止并返回错误信息。默认值为 30 秒,对于 CPU 密集型任务或处理大型数据集的应用程序,可能需要增加此值。 -
post_max_size
: 定义了通过 POST 方法提交到 PHP 脚本的最大数据量。默认值为 8MB,但对于处理文件上传或大型表单数据的应用程序,可能需要增加此值。 -
upload_max_filesize
: 定义了通过 HTTP POST 方法上传到 PHP 脚本的最大文件大小。默认值为 2MB,但对于允许用户上传较大文件的应用程序,可能需要增加此值。
安全设置
-
disable_functions
: 定义了一系列禁用的函数,这些函数将不会在 PHP 脚本中执行。通过禁用危险或不必要的函数,可以增强应用程序的安全性。 -
allow_url_fopen
: 控制是否允许 PHP 从远程 URL 打开文件流。默认情况下,此选项被启用,但在处理不受信任的用户输入时,应将其禁用以防止远程文件包含攻击等漏