带有消息file.log的未捕获异常'Zend_Log_Exception'无法使用模式“a”打开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有消息file.log的未捕获异常'Zend_Log_Exception'无法使用模式“a”打开相关的知识,希望对你有一定的参考价值。

我遇到以下错误:

带有消息file.log的未捕获异常'Zend_Log_Exception'无法使用模式“a”打开

在我的bootstrap中,我有以下代码:

$logfile = PROJECT_PATH . DIRECTORY_SEPARATOR .'/tmp/logs/'.$config->app->logfile.'.log';

if (!file_exists($logfile))
{
  $fp = fopen($logfile, 'a');
  fclose($fp);
}

$redacteur = new Zend_Log_Writer_Stream($logfile);
$logger    = new Zend_Log($redacteur);

完整的错误页面:

警告:fopen(/home/http/me.tv/fbapps/www//tmp/logs/vengeance.log)[function.fopen]:无法打开流:/ home / http / me中没有这样的文件或目录。第81行的tv / fbapps / www / inline / bootstrap_vengeance.php

警告:fclose()要求参数1为资源,在第82行的/home/http/me.tv/fbapps/www/inline/bootstrap_vengeance.php中给出布尔值

致命错误:无法使用/ home / http / me中的模式“a”打开带有消息“/home/http/me.tv/fbapps/www//tmp/logs/vengeance.log”的未捕获异常“Zend_Log_Exception” .tv / fbapps / www / library / Zend / Log / Writer / Stream.php:78堆栈跟踪:#0 /home/http/me.tv/fbapps/www/inline/bootstrap_vengeance.php(85):Zend_Log_Writer_Stream-> __construct('/ home / http / medi ...')#1 /home/http/me.tv/fbapps/www/htdocs/vengeance/index.php(9):require_once('/ home / http / medi。 ..')在第78行的/home/http/me.tv/fbapps/www/library/Zend/Log/Writer/Stream.php中抛出#2 {main}

答案

在文件上添加正确的权限:0777

检查目录/home/http/me.tv/fbapps/www/tmp/logs/是否存在,然后在终端中运行此命令:

chmod 777 /home/http/me.tv/fbapps/www/tmp/logs/vengeance.log
另一答案

Web服务器用户应该有权在logs文件夹上编写和执行(通过)。

chown www-data:www-data -R logs/ # change www-data by the user of the web server chmod 755 -R logs/

将777放在某处是一个非常糟糕的主意。

另一答案

像Clem所说,你不应该给777访问日志文件。这是错误的,并为您的应用程序引入了漏洞。另一种访问您的文件的方法是提供如下访问:

chmod u=rw,g=rw,o=rw file.log

如果您只想对特定用户/组授予读写权限,请确保删除o=rw并添加正确的所有者/组

chown user:group file.log

以上是关于带有消息file.log的未捕获异常'Zend_Log_Exception'无法使用模式“a”打开的主要内容,如果未能解决你的问题,请参考以下文章

Facebook SDK:带有消息“DateTime::__construct()”的未捕获异常“异常”

带有消息“SQLSTATE [22007]”的未捕获异常“PDOException”:日期时间格式无效:1366 字符串值不正确

致命错误:带有消息的未捕获异常“com_exception”。在将ppt转换为jpg时

以 CKException 类型的未捕获异常终止

PHP/MongoDB 错误:未捕获的异常“MongoCursorException”

从 Node.JS 中的未捕获异常中恢复