首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4php mkdir权限被拒绝

log4php mkdir权限被拒绝
EN

Stack Overflow用户
提问于 2016-06-09 05:12:13
回答 1查看 2.1K关注 0票数 0

将项目从本地机器移动到生产机器后,我会得到以下错误:

代码语言:javascript
复制
<b>Warning</b>:  mkdir(): Permission denied in
<b>/var/www/html/findmynumber/api/v1/apache-log4php-2.3.0/src/main/php/appenders/LoggerAppenderFile.php</b> on line
<b>93</b>
<br/>
<b>Warning</b>:  log4php: [LoggerAppenderFile:myAppender]: Failed creating target directory [/var/wwww/html/findmynumber/api/v1/logs]. Closing appender. in
<b>/var/www/html/findmynumber/api/v1/apache-log4php-2.3.0/src/main/php/LoggerAppender.php</b> on line
<b>283</b>

业主是www-data。这个小组也是www-data。我甚至尝试为项目文件夹提供完全权限(777),但没有成功。

对log4php的呼吁是:

代码语言:javascript
复制
include dirname(__FILE__) . "/apache-log4php-2.3.0/src/main/php/Logger.php"; 
Logger::configure(dirname(__FILE__) . '/apache-log4php-2.3.0/src/config.xml'); 
$log = Logger::getLogger('myLogger');

config.xml看起来如下所示:

代码语言:javascript
复制
<configuration>
  <appender name="myAppender" class="LoggerAppenderFile">
    <param name="file" value="/var/wwww/html/findmynumber/api/v1/logs/myLog.log"/>
  </appender>
  <appender name="console" class="LoggerAppenderConsole"/>
  <root>
    <appender_ref ref="console"/>
  </root>
  <logger name="myLogger">
    <level value="DEBUG"/>
    <appender_ref ref="myAppender"/>
  </logger>
</configuration>

我在这里错过了什么?

编辑

贝娄是函数出现的错误。它来自log4php文件,来自LoggerAppenderFile.php:

代码语言:javascript
复制
protected function openFile() { 
    $file = $this->getTargetFile(); 
    echo $file . "\n"; 
    $curr = !is_file($file); 
    echo "curr is: " . $curr . "\n"; 
    echo is_file($file) . "\n" ; 
    echo dirname($file) . "\n"; 
    // Create the target folder if needed 
    if(!is_file($file)) { 
        $dir = dirname($file); 

        if(!is_dir($dir)) { 
            $success = mkdir($dir, 0777, true); 
            if ($success === false) { 
                $this->warn("Failed creating target directory [$dir]. Closing appender."); 
                $this->closed = true; 
                return false; 
            } 
        } 
    }

正如您所看到的,我自己添加了一些调试打印。93行是带有mkdir语句的行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-10 05:52:49

@florin问题是config.xml中的错误

代码语言:javascript
复制
 <appender name="myAppender" class="LoggerAppenderFile">
    <param name="file" value="/var/wwww/html/findmynumber/api/v1/logs/myLog.log"/>
  </appender>

应该是这样的

代码语言:javascript
复制
/var/www/html/findmynumber/api/v1/logs/myLog.log. instead of www you kept wwww 

这个你可以签入这个警告

代码语言:javascript
复制
<b>Warning</b>:  log4php: [LoggerAppenderFile:myAppender]: Failed creating target directory [/var/wwww/html/findmynumber/api/v1/logs]. Closing appender. in
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37717307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档