tail命令实时查看日志tail -f是Ubuntu下最常用的实时监控日志工具,适用于大多数PHP日志文件(如PHP-FPM、Apache、Nginx的错误日志)。
/var/log/php-fpm.log(或/var/log/php7.x-fpm.log,x为PHP版本号),命令:sudo tail -f /var/log/php-fpm.log
/var/log/apache2/error.log,命令:sudo tail -f /var/log/apache2/error.log
/var/log/nginx/error.log,命令:sudo tail -f /var/log/nginx/error.log
Ctrl + C退出。若需要自定义监控逻辑(如将日志输出到网页或发送通知),可以编写PHP脚本。以下是一个简单的示例:
<?php
$logFile = '/var/log/php-fpm.log'; // 替换为实际日志路径
$fileSize = filesize($logFile);
while (true) {
clearstatcache(); // 清除文件状态缓存
$currentSize = filesize($logFile);
if ($currentSize > $fileSize) {
$handle = fopen($logFile, 'r');
fseek($handle, $fileSize); // 定位到上次读取位置之后
$content = fread($handle, $currentSize - $fileSize); // 读取新增内容
fclose($handle);
echo $content; // 输出到终端(可修改为写入文件或发送邮件)
$fileSize = $currentSize;
}
sleep(1); // 每秒检查一次,避免CPU占用过高
}
?>
log_monitor.php,通过PHP运行:php log_monitor.php
sudo运行)。multitail工具监控多个日志若需要同时监控多个日志文件(如PHP-FPM错误日志和访问日志),可以使用multitail工具,支持分屏显示。
multitail:sudo apt install multitail
sudo multitail /var/log/php-fpm.log /var/log/php-fpm.access.log
-s 2表示分两屏显示,-c表示彩色高亮。对于生产环境,建议使用专业日志管理工具,实现日志的集中存储、搜索和分析:
/etc/logrotate.d/,可修改php-fpm相关配置(如/etc/logrotate.d/php7.x-fpm)。/etc/rsyslog.conf。若无法找到PHP日志,需确认日志路径是否正确:
/var/log/php-fpm.log,Apache/Nginx错误日志分别在/var/log/apache2/error.log和/var/log/nginx/error.log。php.ini文件(路径为/etc/php/{version}/cli/php.ini或/etc/php/{version}/fpm/php.ini),查找error_log指令:error_log = /var/log/php_errors.log
若error_log设置为自定义路径,则需监控该文件。root用户,需使用sudo提升权限查看。tail -f和PHP脚本均为实时监控,适合快速排查问题;日志管理工具适合长期存储和分析。