PHP FPM是PHP FastCGI Process Manager的簡稱,是一種基于FastCGI的PHP進程管理工具。它在Web服務器中作為一個獨立的進程運行,接收來自Web服務器的請求,并且為每個請求創建一個PHP進程來完成請求。由于PHP FPM是多進程的,所以它能夠處理多個請求同時到達的情況,從而提高服務器的性能。但是,PHP FPM的運行狀態需要被監控,以確保服務器的穩定運行。本文將介紹如何使用一些工具來監控PHP FPM。
首先,我們需要了解如何安裝和配置PHP FPM,例如,我們可以在Ubuntu上安裝PHP FPM
`sudo apt-get install php-fpm`
然后,我們需要編輯PHP FPM的配置文件php-fpm.conf,以便開啟狀態監控
`pm.status_path = /fpm-status`
`ping.path = /fpm-ping`
在此之后,我們需要重啟PHP FPM,并在Web服務器的配置文件中添加以下代碼
```
location /fpm-status {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
location /fpm-ping {
access_log off;
allow 127.0.0.1;
deny all;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
```
然后我們可以使用一些工具來監控PHP FPM的狀態。其中一種工具是php-fpm-status,它是一個簡單的PHP腳本,可用于獲取PHP FPM的狀態信息。我們可以將它下載到Web服務器根目錄下,例如
```
cd /var/www/html
wget https://raw.githubusercontent.com/paulvollmer/phpfpm-status-dashboard/master/phpfpm_status.php
```
然后我們可以在瀏覽器中打開phpfpm_status.php文件,以查看PHP FPM的狀態信息,如下圖所示
![phpfpm-status](https://user-images.githubusercontent.com/1501393/42283605-2a31d0d6-7ff8-11e8-99b4-94eb1ea9019e.png)
另一個工具是php-fpm-graphite,它可以將PHP FPM的狀態信息發送到Graphite監控系統。我們需要安裝php-pear和php-dev,然后運行以下命令來安裝php-fpm-graphite
`sudo pecl install stats`
`sudo pecl install pecl_http`
`sudo pecl install channel://pecl.php.net/stats-1.0.5`
我們還需要編輯php-fpm-graphite的配置文件php-fpm-graphite.ini,例如:
```
[php-fpm]
extension = stats.so
auto_prepend_file = "/usr/share/php/php-fpm-graphite.php"
stats.graphitehost = "localhost"
stats.graphiteport = "2003"
stats.namespace = "php-fpm"
```
然后我們需要編輯Web服務器的配置文件,并添加以下代碼
```
include fastcgi.conf;
fastcgi_param PHP_VALUE "auto_prepend_file=/usr/share/php/php-fpm-graphite.php";
```
現在,我們可以通過Graphite監控系統來監控PHP FPM的狀態信息。例如,我們可以查看php-fpm.requests和php-fpm.processes的圖表,以觀察請求的情況和進程的數量的變化。
PHP FPM的狀態監控是Web服務器管理的重要組成部分。通過使用上述工具,我們可以及時了解PHP FPM的狀態信息,并采取必要的措施來保持服務器的穩定和高效運行。
下一篇php fpm的日志