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.
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. –
@TheBigbyteNumber Je l'ai déjà fait mais l'erreur reste – florin
nous devons voir la ligne 93 – vitr