2016-06-09 8 views
0

Après avoir déplacé le projet à partir d'une machine locale à une machine de production, je reçois l'erreur suivante:Php permission log4php mkdir refusé

<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> 

Le propriétaire est www-data. Le groupe est également www-data. J'ai même essayé de donner des permissions complètes (777) pour le dossier du projet mais sans succès.

Les appels à log4php sont:

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'); 

Le config.xml ressemble à ceci:

<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> 

Qu'est-ce que je manque ici?

Modifier

Bellow est la fonction était l'erreur apparaît. Il est pris à partir des fichiers log4php, de LoggerAppenderFile.php:

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; 
      } 
     } 
    } 

Comme vous le voyez, j'ai ajouté quelques impressions de débogage moi-même. La ligne 93 est celle avec l'instruction mkdir.

+1

utilisation de commande récursive pour définir les permissions "chmod 777 -R your-proj-folder". Si vous utilisez -R, il définira également des autorisations pour votre dossier de projet et vos sous-dossiers. –

+0

@TheBigbyteNumber Je l'ai déjà fait mais l'erreur reste – florin

+0

nous devons voir la ligne 93 – vitr

Répondre

0

problème est @florin erreur faute de frappe dans config.xml

<appender name="myAppender" class="LoggerAppenderFile"> 
    <param name="file" value="/var/wwww/html/findmynumber/api/v1/logs/myLog.log"/> 
    </appender> 

il devrait être comme ça

/var/www/html/findmynumber/api/v1/logs/myLog.log. instead of www you kept wwww 

celui-ci vous pouvez vérifier dans cet avertissement

<b>Warning</b>: log4php: [LoggerAppenderFile:myAppender]: Failed creating target directory [/var/wwww/html/findmynumber/api/v1/logs]. Closing appender. in 
+0

C'était le problème. Je vous remercie – florin