要監控Ubuntu PHP日志的實時變化,可以使用以下幾種方法:
tail
命令tail
命令是實時顯示日志內容的最常用方法。你可以使用以下命令來實時監控 PHP 日志文件的變化:
tail -f /var/log/php7.0-fpm.log
或者,如果你想要監控多個日志文件,可以使用 multitail
命令:
sudo apt install multitail # 安裝 multitail
multitail /var/log/php7.0-fpm.log /var/log/php7.0-fpm.error.log
你可以編寫一個簡單的 PHP 腳本來監控日志文件的變化。以下是一個示例腳本:
<?php
$logFile = '/var/log/php7.0-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);
}
?>
將上述代碼保存為 log_monitor.php
,然后使用 PHP 運行它:
php log_monitor.php
WebSocket 是一種全雙工通信協議,可以實現實時的雙向通信。你可以使用 PHP 的 WebSocket 庫來創建一個 WebSocket 服務器,并在客戶端上通過 JavaScript 接收和顯示日志內容。
以下是一個簡單的 WebSocket 服務器示例:
<?php
require 'WebSocketServer.php';
$server = new WebSocketServer();
$server->bind('0.0.0.0', 8000);
$server->run();
function onLogChange($log) {
global $server;
$server->sendAll($log);
}
$logFile = '/var/log/php7.0-fpm.log';
$server->setLogChangeListener('onLogChange');
$server->setLogFile($logFile);
?>
在客戶端,你可以使用 JavaScript 的 WebSocket API 來連接到 WebSocket 服務器,并接收和顯示日志內容:
var socket = new WebSocket('ws://localhost:8000');
socket.onmessage = function(event) {
console.log(event.data);
};
這些方法可以幫助你實時監控 Ubuntu 系統中 PHP 日志的變化,并及時采取相應的措施。