web-dev-qa-db-fra.com

PHP / Apache s'exécute sous quel utilisateur sur Ubuntu Server

J'ai un script PHP (dans /var/www) qui est censé écrire les journaux d'opération dans un fichier deploy.log (également dans /var/www) et effectuer des opérations sur un fichier situé dans d'autres répertoires du système (comme /home/<user>/repo/my-repo.git et /srv/pr). Cependant, il ne le fait pas actuellement. Lorsque je modifie l'autorisation de mon fichier journal en 777, le PHP peut l'écrire dans ce fichier. Pour des raisons évidentes, je ne parviens pas à conserver les autorisations à 777.

J'ai lu quelque part que les fichiers sur lesquels vous souhaitez opérer doivent avoir les mêmes autorisations que l'utilisateur qui exécute les fichiers PHP. Alors, comment puis-je savoir que PHP fonctionne sous quel utilisateur? Si ce n'est pas la bonne approche, comment peut-on résoudre ce problème?

J'utilise Ubuntu 14.x sur Amazon EC2.

J'ai également essayé de définir Sudo chown -R ubuntu:ubuntu /var/www pour tout le dossier www mais mon script PHP n'écrit toujours pas dans le fichier journal.

5
Gaurav Wadhwani

L'utilisateur qui exécute Apache/php est www-data.
Exécutez Sudo chown -R www-data:www-data /var/www/deploy.log pour rendre le fichier modifiable par le serveur Web.
Les autres fichiers sur lesquels vous souhaitez effectuer des opérations doivent également pouvoir être écrits en écriture par le serveur Web.

4
Pabi