Mon serveur Linux exécute PHP 7 en tant que CGI sur Apache2. En php.ini
jeErreurs PHP écrites dans le mauvais journal
error_log = /var/log/apache2/php.log
Maintenant, j'ai deux problèmes:
1) Toutes les erreurs PHP aller à /var/log/apache2/error.log
au lieu de php.log
. J'ai édité le droit php.ini
parce que ini_get('error_log')
renvoie le chemin complet de php.log
en PHP.
2) Lorsque j'essaie d'ouvrir l'un de ces fichiers en PHP, j'obtiens l'autorisation refusée. J'ai chmod
'd les deux fichiers à 777, mais PHP est toujours incapable d'y accéder.
Le serveur a été redémarré plusieurs fois afin que les modifications de configuration s'appliquent. Ma configuration Apache est la suivante:
ErrorLog ${APACHE_LOG_DIR}/error.log
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php7 php
Action application/x-httpd-php7 /local-bin/php-cgi7.0
<Directory "/usr/bin">
Require all granted
AllowOverride All
</Directory>
Comment puis-je rediriger les erreurs PHP pour le bon fichier, et faire aussi lisible pour PHP? Merci d'avance!
Modifier 'ErrorLog $ {APACHE_LOG_DIR}/error.log' à' ErrorLog $ {APACHE_LOG_DIR}/php.log'? – Halcyon
chmodding les fichiers n'est généralement pas suffisant. vous devez avoir l'autorisation d'accéder à TOUS les répertoires parent/conteneur. accorder l'accès à un fichier est inutile s'il se trouve dans un coffre sécurisé. Les fichiers journaux sont créés alors que Apache fonctionne toujours en tant que root, donc les fichiers sont la propriété de root. alors une fois que vous essayez d'y accéder en php, apache n'est plus root, et php n'a aucun droit sur les fichiers. –
Bon, retour aux sources! C'était en effet un problème d'autorisation avec les répertoires parents. Maintenant, je me sens gêné :) – Aleksiv95