Je viens d'installer un serveur nginx+php-fpm. Tout semble correct sauf que PHP-FPM n'écrit jamais d'erreur dans son journal.
fpm.conf
[default]
listen = /var/run/php-fpm/default.sock
listen.allowed_clients = 127.0.0.1
listen.owner = webusr
listen.group = webusr
listen.mode = 0666
user = webusr
group = webusr
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.status_path = /php/fpm/status
ping.path = /php/fpm/ping
request_terminate_timeout = 30s
request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm/default/slow.log
chroot = /var/www/sites/webusr
catch_workers_output = yes
env[HOSTNAME] = mapsvr.mapking.com
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/php-fpm/default/error.log
php_admin_flag[log_errors] = on
nginx.conf
server
{
listen 80 default_server;
server_name _;
charset utf-8;
access_log /var/log/nginx/access.log rest;
include conf.d/drops.conf.inc;
location /
{
root /var/www/sites/webusr/htdocs;
index index.html index.htm index.php;
}
# pass the PHP scripts to FastCGI server listening on socket
#
location ~ \.php$
{
root /var/www/sites/webusr/htdocs;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /htdocs/$fastcgi_script_name;
if (-f $request_filename)
{
fastcgi_pass unix:/var/run/php-fpm/default.sock;
}
}
location = /php/fpm/status
{
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php-fpm/default.sock;
}
location = /php/fpm/ping
{
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php-fpm/default.sock;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root /usr/share/nginx/html;
}
}
J'ai fait un php script erroné et exécuté, et voir la sortie d'erreur sur le navigateur Web. Le journal des erreurs de nginx indique également la sortie stderr de fpm avec le même message. J'ai vérifié que l'utilisateur a le droit d'écrire (j'ai même essayé 777) dans le dossier de journal désigné. Même le fichier error.log a été créé avec succès par php-fpm. Cependant, le fichier journal est toujours vide, quelle que soit l'erreur scandaleuse qui a été faite à partir de php script.
Qu'est-ce qui se passe ?
[J'ai trouvé la raison un peu plus tard]
C'était une permission. Changer le propriétaire en utilisateurs du site a résolu le problème.
0 votes
Il convient de mentionner que la version problématique de php se situe entre v5.3.9 et v5.3.14 (à ce jour). Il devrait fonctionner à partir des versions 5.3.15 et 5.4.5.
0 votes
Si vous utilisez hhvm + php-fpm avec homestead le journal est à tail /var/log/hhvm/error.log
0 votes
Même problème ici. Il semble que les journaux d'accès et de ralentissement aient besoin de permissions différentes, donc le dossier est créé avec Root-755.