带有消息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时