Ricerca nel sito web

Come abilitare e monitorare lo stato PHP-FPM in Nginx


PHP-FPM (FastCGI Process Manager) è un'implementazione alternativa di PHP FastCGI dotata di una serie di funzionalità extra utili per siti Web di qualsiasi dimensione, in particolare i siti che ricevono un traffico elevato.

È comunemente utilizzato nello stack LEMP (Linux Nginx MySQL/MariaDB PHP); Nginx utilizza PHP FastCGI per fornire contenuti HTTP dinamici su una rete. Viene utilizzato per servire milioni di richieste PHP per centinaia di siti Web su server Web su Internet.

Leggi anche: Come abilitare la pagina di stato NGINX

Una delle funzionalità utili di php-fpm è la pagina di stato integrata, che può aiutarti a monitorarne lo stato. In questo articolo mostreremo come abilitare la pagina di stato PHP-FPM su Linux.

Come abilitare la pagina di stato PHP-FPM in Linux

Per prima cosa apri il file di configurazione php-fpm e abilita la pagina di stato come mostrato.

sudo vim /etc/php-fpm.d/www.conf 
OR
sudo vim /etc/php/7.2/fpm/pool.d/www.conf	#for PHP versions 5.6, 7.0, 7.1

All'interno di questo file, trova e decommenta la variabile pm.status_path=/status come mostrato nello screenshot.

Salvare le modifiche ed uscire dal file.

Successivamente, controlla che non vi siano errori nel file di configurazione PHP-FPM eseguendo il comando seguente.

sudo php-fpm -t
OR
sudo php7.2-fpm -t

Quindi riavvia il servizio PHP-FPM per applicare le modifiche recenti.

sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm

Successivamente, modifica il file di configurazione predefinito del blocco server (host virtuale) e aggiungi il blocco posizione di seguito. Ad esempio, sul sistema di test, il file di configurazione del blocco server predefinito è /etc/nginx/conf.d/default.conf, per il sito test.lab.

sudo vim /etc/nginx/conf.d/default.conf 

Ecco il blocco posizione da aggiungere. In questa configurazione, abbiamo consentito l'accesso solo allo stato del processo PHP-FPM all'interno del localhost utilizzando la direttiva allow 127.0.0.1 per motivi di sicurezza.

location ~ ^/(status|ping)$ {
        allow 127.0.0.1;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass   unix:/var/run/php7.2-fpm.sock;
}

Salva il file e chiudilo.

Quindi riavvia il server Nginx per applicare le modifiche di cui sopra.

sudo systemctl restart nginx

Ora apri un browser e digita l'URL http://test.lab/status per visualizzare lo stato del processo PHP-FPM.

In alternativa, utilizzare il programma curl come segue, dove il flag -L specifica la posizione della pagina.

curl -L http://test.lab/status

Per impostazione predefinita, la pagina di stato stampa solo un riepilogo o un breve stato. Per visualizzare lo stato di ogni processo del pool, passa "completo " nella stringa di query, ad esempio:

http://www.foo.bar/status?full

È possibile definire il formato di output (JSON, HTML o XML) come mostrato.

http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full

Di seguito sono riportati i valori restituiti nello stato completo di php-fpm, per ciascun processo:

  • pid – PID del processo.
  • Stato del processo stato (inattivo, in esecuzione, ecc.).
  • ora di inizio: data e ora di inizio del processo.
  • inizia da: numero di secondi dall'inizio del processo.
  • richieste: numero di richieste servite dal processo.
  • durata della richiesta – durata in µs delle richieste.
  • metodo di richiesta – metodo di richiesta (GET, POST, ecc.).
  • richiedi URI: richiedi l'URI con la stringa di query.
  • lunghezza contenuto – lunghezza del contenuto della richiesta (solo con POST).
  • utente – utente (PHP_AUTH_USER) (o "-" se non impostato).
  • script: script principale chiamato (o "-" se non impostato).
  • ultima richiesta CPU – %cpu dell'ultima richiesta consumata (nota che è sempre 0 se il processo non è in stato inattivo).
  • memoria dell'ultima richiesta: quantità massima di memoria consumata dall'ultima richiesta (è sempre 0 se il processo non è in stato inattivo).

Per ora è tutto! In questo articolo, abbiamo spiegato come abilitare la pagina di stato php-fpm nel server web Nginx. Utilizza il modulo di feedback qui sotto per condividere i tuoi pensieri con noi.