尽管文件访问成功,但fwrite()资源流错误(nginx)

时间:2018-09-08 11:38:24

标签: php nginx fwrite

我已经在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访问权限有关,并且执行了以下操作:

  1. www-data:www-data设置为/ var / www的所有者
  2. 创建了一个sftp用户,然后
  3. 将用户添加到www-data
  4. 将www数据组权限更改为775

从理论上讲,现在www-data用户和ftp用户都应该能够访问文件(他们可以)。这也应该有助于我摆脱上述任何错误。有趣的是,NGINX仍然给我同样的错误,但是PHP正在积极地写入文件。因此,它的工作,但NGINX抱怨。

是否有人知道会发生什么以及如何在NGINX级别解决问题?

最诚挚的问候,巴克尔

0 个答案:

没有答案