编程

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

878 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指令。