编程

PHP 8.2: 新增 error_log_mode INI 设置项用来设置错误日志文件权限

1441 2022-12-10 13:11:19

PHP 8.2 引入新的 INI 指令叫做 error_log_mode,可用作配置 PHP 错误日志文件的文件权限(用 error_log 指令配置)。

在 PHP8.2之前, PHP 将文件权限自动设置为 0644(相当于 rw-r--r--,即 owner 可读写,group 和 public 只读)。对于新增的 error_log_mode 指令,0644 仍然是默认值,不过限制可以通过 INI 设置配置错误日志文件权限了。

log_errors=1
error_log=error_permissions_test.log
error_log_mode=0644

error_log_mode 只影响PHP新建的日志文件。已有文件的权限不会被修改

error_log_mode 的可更改值为 PHP_INI_ALL,可以在任何 INI 文件、命令行参数或通过 ini_set 函数进行配置。

向后兼容性影响

在较旧的 PHP 版本中声明 error_log_mode INI 指令不会导致任何警告或错误,因为 PHP 会忽略无法识别的 INI 指令。