我已经在Ubuntu 16.04 LTS上使用php-fpm设置了我的NGINX Web服务器。系统稳定,运行平稳。不幸的是,尽管不存在与我的确切情况类似的问题,但我还是遇到了一个在其他帖子(“ fwrite资源流式传输” )中已经讨论很久的问题。这是情况...
我正在运行以下代码:
class SysLogHandler {
private $logfile;
private $fileHandle;
private $loglevel;
public function __construct() {
$this->logfile = ''.PROJECT_DOCUMENT_ROOT.'/logs/'.date('d_m_Y',time()).'_log.txt';
$this->fileHandle = @fopen($this->logfile,'a+');
}
public function __destruct() {
if($this->fileHandle) {
fclose($this->fileHandle);
}
}
public function doLog($message,$level = "INFO") {
if(($this->loglevel == $level) OR ($level == 'WARN')) {
$string = strToUpper($level).'::'.date("d_m_Y H:i:s",time()).' - '.$message.' - '.$_SERVER["SCRIPT_FILENAME"]."\r\n";
fwrite($this->fileHandle,$string);
}
}
现在NGINX error.log在doLog()中为fwrite给出了以下PHP警告:
fwrite(): supplied resource is not a valid stream resource
我意识到此问题与linux访问权限有关,并且执行了以下操作:
从理论上讲,现在www-data用户和ftp用户都应该能够访问文件(他们可以)。这也应该有助于我摆脱上述任何错误。有趣的是,NGINX仍然给我同样的错误,但是PHP正在积极地写入文件。因此,它的工作,但NGINX抱怨。
是否有人知道会发生什么以及如何在NGINX级别解决问题?
最诚挚的问候,巴克尔