C'est essentiellement la même chose que ces questions:
https://stackoverflow.com/questions/8677493/php-fpm-doesnt-write-to-error-log
[~ # ~] mais [~ # ~] les réponses ne semblent pas fonctionner sur Ubuntu 16.04 avec PHP 7.
/etc/php/7.0/fpm/pool.d/www.conf :
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
/var/log/fpm-php.www.log
existe et appartient à www-data
.
/etc/php/7.0/fpm/php.ini :
log_errors = On
Bloc serveur de l'hôte virtuel Nginx
access_log /var/log/myapp/access.log;
error_log /var/log/myapp/error.log error;
/var/log/myapp/access.log existe et appartient à www-data
.
Mais lorsqu'une erreur se produit, je ne reçois aucune erreur dans aucun des fichiers journaux spécifiés et je ne le trouve pas ailleurs non plus.
J'ai parcouru toutes les suggestions sur l'autre question, mais je n'ai trouvé aucune réponse qui fonctionnait. Je suppose que quelque chose a changé depuis que ces réponses ont été publiées. Aucune suggestion?
Le commentaire ci-dessus par the_nuts a aidé à le résoudre pour moi. Le répertoire et le fichier n'existaient pas.
Pour diagnostiquer, j'ai ajouté:
print("\n\n<br><br>log_errors: ".ini_get('log_errors'));
print("\n\n<br><br>error_log: ".ini_get('error_log'));
en haut de mon code (un WordPress). Cela a généré:
log_errors: 1
error_log: /usr/local/etc/php-fpm.d/fpm.log
Dans le terminal, j'ai utilisé ls pour apprendre que le fichier et le répertoire étaient manquants, c'est-à-dire.
ls /usr/local/etc/php-fpm.d/fpm.log
ls /usr/local/etc/php-fpm.d/
sortie
ls: cannot access '/usr/local/etc/php-fpm.d/fpm.log': No such file or directory
ls: cannot access '/usr/local/etc/php-fpm.d': No such file or directory
Pour corriger: j'ai changé le répertoire en /usr/local/etc, créé le répertoire, le fichier, puis défini le propriétaire sur www- data: www-data
cd /usr/local/etc
Sudo mkdir php-fpm.d
cd php-fpm.d
Sudo touch fpm.log
Sudo chown -R www-data:www-data fpm.log
Si le fichier et le répertoire existent, exécutez
ls fpm.log -l
et si le propriétaire est root:
-rw-r--r-- 1 root root 0 Jun 23 19:52 fpm.log
courir
Sudo chown -R www-data:www-data fpm.log
pour donner au serveur Web la propriété et l'accès en écriture
-rw-r--r-- 1 www-data www-data 12848 Jun 23 20:07 fpm.log