Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP-FPM, Monit, ping/status pages, Apache

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:

http://mydomain.com/status

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?

like image 678
besson3c Avatar asked Dec 05 '22 18:12

besson3c


2 Answers

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
like image 177
jmoz Avatar answered Dec 10 '22 10:12

jmoz


this thread helped me too ... Was getting White "Blank" PHP pages.

in my /etc/nginx/fastcgi_params added this

fastcgi_param PATH_TRANSLATED   $document_root$fastcgi_script_name;

Worked like a charm

like image 22
Gagan Pal Avatar answered Dec 10 '22 09:12

Gagan Pal