在Ubuntu系统中配置PHP慢日志(Slow Query Log)可以帮助你监控和优化PHP应用程序的性能。以下是详细的步骤来配置PHP慢日志:
首先,确保你已经安装了PHP-FPM。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install php-fpm
编辑PHP-FPM的配置文件,通常位于 /etc/php/7.x/fpm/pool.d/www.conf
(请根据你的PHP版本调整路径)。
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到以下行并取消注释(删除行首的分号):
request_slowlog_timeout = 0
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout
设置请求处理时间超过多少秒会被记录到慢日志中。设置为 0
表示记录所有请求。slowlog
设置慢日志文件的路径。保存并关闭文件。
为了使配置生效,需要重启PHP-FPM服务:
sudo systemctl restart php7.x-fpm
请根据你的PHP版本调整命令中的 php7.x
。
如果你使用的是Nginx或Apache作为Web服务器,还需要配置它们以记录慢请求日志。
编辑Nginx的配置文件,通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/default
。
sudo nano /etc/nginx/nginx.conf
在 http
块中添加或修改以下配置:
http {
...
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# 慢请求日志配置
slow_log /var/log/nginx/slow.log;
slow_log_timeout 30s; # 设置慢请求日志的超时时间
...
}
保存并关闭文件,然后重启Nginx服务:
sudo systemctl restart nginx
编辑Apache的配置文件,通常位于 /etc/apache2/apache2.conf
或 /etc/apache2/sites-available/000-default.conf
。
sudo nano /etc/apache2/apache2.conf
在 <IfModule mod_fastcgi.c>
或 <IfModule mod_proxy_fcgi.c>
块中添加以下配置:
<IfModule mod_fastcgi.c>
FastCgiExternalServer /usr/bin/php-fpm -socket /run/php/php7.x-fpm.sock -pass-header Authorization
AddHandler php7-script .php
Action php7-script /usr/bin/php-fpm
</IfModule>
# 慢请求日志配置
LogLevel alert slow
ErrorLog ${APACHE_LOG_DIR}/slow.log
CustomLog ${APACHE_LOG_DIR}/slow.log combined env=slow_request
请根据你的PHP版本调整命令中的 php7.x
。
保存并关闭文件,然后重启Apache服务:
sudo systemctl restart apache2
现在,你可以查看慢日志文件来分析性能问题:
tail -f /var/log/php-fpm/www-slow.log
tail -f /var/log/nginx/slow.log
# 或者
tail -f /var/log/apache2/slow.log
通过这些步骤,你应该能够在Ubuntu系统上成功配置PHP慢日志,并监控和优化你的PHP应用程序的性能。