我正在尝试运行CLI php脚本,虽然大多数都可以运行,但我无法转储日志文件。
private function WriteLogForCLI($msg){
try{
$ttw = " *************************************************** " . PHP_EOL;
$ttw .= " *" . PHP_EOL;
$ttw .= " * TIME STAMP: " . date("m/d/Y H:i:s");
$ttw .= " *" . PHP_EOL;
$ttw .= " * $msg" . PHP_EOL;
$ttw .= " *" . PHP_EOL;
$ttw .= " *************************************************** " . PHP_EOL;
$logfile = str_replace('//', '/', FCPATH . 'assets/logs/' . date("m-d-Y") . '.txt');
$fh = fopen($logile, 'wb');
//var_dump($fh);
//var_dump($ttw);
fwrite($fh, $ttw);
fclose($fh);
//var_dump($logfile);
}catch(Exception $e){
var_dump($e->getMessage());
}
}
$logfile
路径是正确的,并且是此文件所在位置的绝对位置...例如/var/www/the_site/assets/logs/03-06-2014.txt是{{ 1}}'d这是正确的。
我确保写入的目录具有0777访问权限。
我可以做些什么来完成这项工作?我所要做的就是编写一个var_dump
的日志文件,但是要从cli运行它。
我已经通过正常登录尝试了,root登录和文件永远不会被写入。
服务器是Ubuntu 13.10服务器,PHP 5.5.3
答案 0 :(得分:1)
你有
$logfile = str_replace('//', '/', FCPATH . 'assets/logs/' . date("m-d-Y") . '.txt');
但是,你在fopen函数中使用$ logile
$fh = fopen($logile, 'wb');
所以,改为
$fh = fopen($logfile, 'wb');