要定制 CentOS 上的 PHP 日志格式,您需要修改 PHP-FPM 或 Apache 的配置文件,具体取决于您使用的 PHP 服务。下面是针对 PHP-FPM 和 Apache 的定制方法:
对于 PHP-FPM:
打开 PHP-FPM 配置文件。通常位于 /etc/php-fpm.d/www.conf 或 /etc/php-fpm.conf。使用文本编辑器打开,例如 vi 或 nano:
sudo vi /etc/php-fpm.d/www.conf
或者
sudo vi /etc/php-fpm.conf
在配置文件中找到 access.format 设置。如果没有找到,请在 ;fastcgi_param 部分下添加一行。设置您想要的日志格式,例如:
access.format = "[%time%] %request%
这将使用 `%time%`、`%request%` 等变量来定制日志格式。您可以参考 PHP-FPM 文档中的变量列表:https://www.php.net/manual/en/install.fpm.status.php#install.fpm.status.variables
3. 保存并关闭配置文件。
4. 重启 PHP-FPM 服务以应用更改:
sudo systemctl restart php-fpm
或者
sudo service php-fpm restart
**对于 Apache:**
1. 打开 Apache 配置文件。通常位于 `/etc/httpd/conf/httpd.conf` 或 `/etc/apache2/apache2.conf`。使用文本编辑器打开,例如 `vi` 或 `nano`:
sudo vi /etc/httpd/conf/httpd.conf
或者
sudo vi /etc/apache2/apache2.conf
2. 在配置文件中找到 `LogFormat` 指令。如果没有找到,请在文件末尾添加一行。设置您想要的日志格式,例如:
LogFormat “%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"” combined
这将创建一个名为 "combined" 的自定义日志格式。您可以参考 Apache 文档中的日志格式变量:https://httpd.apache.org/docs/current/logs.html#logformat
3. 如果您还没有为 PHP 请求定义一个自定义日志格式,请在配置文件中添加一个 `SetEnvIf` 指令,例如:
SetEnvIf Request_URI .php$ nolog CustomLog /var/log/httpd/access_log combined env=!nolog
这将排除对 PHP 文件的日志记录。
4. 保存并关闭配置文件。
5. 重启 Apache 服务以应用更改:
sudo systemctl restart httpd
或者
sudo service apache2 restart
现在,您的 CentOS 系统应该已经使用您自定义的 PHP 日志格式记录 PHP 请求了。