I'm trying to monitor my FPM daemon with Monit, and I'm assuming that the following is not the best technique due to respawning and the PID changing?
check process php5-fpm with pidfile "/var/run/php5-fpm.pid"
start = "/etc/init.d/php5-fpm start"
stop = "/etc/init.d/php5-fpm stop"
if failed port 80 protocol http then restart
From what I can gather, the better way to do this is to make use of the FPM ping URLs, only I'm unable to activate these with Apache.
What exactly has to be done in Apache/PHP-FPM, other than setting the FPM pool option:
pm.status_path = /status ping.path = /ping
which I was hoping would allow me to simply go to:
to pull up the status page. When I go to this URL I'm getting 404 errors. I'm assuming that I need some sort of handler to redirect /status and /ping to my FPM server on localhost port 9000. How can I do this?
You would need to set up the default vhost in apache (000-default???) to handle /status and /ping. I use nginx (apologies, but adapt as needed) and my default
file has the following location directive:
location ~ ^/(status|ping)$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
allow 127.0.0.1;
deny all;
}
Which then allows me to curl localhost/status
.
You also need to change your php-fpm conf (mine is www.conf) and uncomment the lines:
pm.status_path = /status
ping.path = /ping