2016-04-28 1 views
1

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!

+0

Modifier 'ErrorLog $ {APACHE_LOG_DIR}/error.log' à' ErrorLog $ {APACHE_LOG_DIR}/php.log'? – Halcyon

+0

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

+0

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

Répondre

1

Vous devez changer le owner et le group du répertoire des journaux et le fichier journal/s (si elle est déjà exister/s) à www-data:

sudo chown -R www-data:www-data /path/to/log/directory 

Ne pas modifier les autorisations de répertoire pour 777 comme il pourrait Pour des raisons de sécurité, utilisez 775 à la place. Pour les fichiers journaux, utilisez 664.

Vous pouvez également ajouter votre utilisateur du système au groupe www-data sinon déjà membre (utilisez la commande groups pour vérifier vos groupes existants), un redémarrage du système est nécessaire après que les modifications prennent effet:

sudo adduser user www-data #change 'user' to your 
+0

Merci! Vous savez, il est facile de trébucher avec ce genre de choses quand vous venez d'un monde Windows et que vous êtes familier avec NTFS. J'ai oublié que l'autorisation d'exécution est requise sur chaque répertoire parent pour accéder au fichier. Donc, finalement, j'ai créé '/ var/log/php',' chown''d à 'root: www-data' et' chmod''d à '750'. Ensuite, je pourrais utiliser 'php.log' dans ce dossier. PS. J'ai changé la permission à '777' seulement temporairement, ne vous inquiétez pas :) – Aleksiv95