好的,我正在尝试将Apache日志发送到PHP脚本。我只想通过身份验证的用户请求通过某个目录(受密码保护的成员目录)请求某些文件:
SetEnvIf Request_URI "(\.avi|\.mov|\.mp4|\.mpg|\.mpeg)$" dolog=1
SetEnvIf Request_URI "!/members" dolog=0
SetEnvIf Remote_USER "-" dolog=0
CustomLog "|/usr/bin/php /home/public_html/scripts/log.php" "%{sec}t %T %u %a %f %B %>s" env=dolog
但是,导致服务器错误:AH00106:管道日志程序意外失败。有趣的是,它确实在不久之前就起作用了。我确实将PHP从5.6升级到7.3。通过SSH或浏览器执行脚本时没有错误。这是脚本(log.php):
<?php
chdir(dirname(__FILE__));
require_once 'config.php';
require_once 'functions.php';
$stdin = fopen ('php://stdin', 'r');
ob_implicit_flush(true);
while ($line = fgets($stdin)) {
$line = trim($line);
$array = explode(" ", $line);
logusage($array[0], $array[1], ($array[1] + $array[2]), $array[2], $array[4], $array[3], $array[5], $array[6], $array[7]);
print $line;
}
?>