2011-12-14 16 views
3

我試圖用Monit來監視我的FPM守護進程,並且我假設由於respawning和PID改變,以下不是最好的技術?PHP-FPM,Monit,ping/status頁面,Apache

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 

據我所知,更好的方式來做到這一點是要利用FPM平的網址,只有我無法與Apache來激活這些。

究竟有Apache中/ PHP-FPM比設置FPM池選項來完成,其他:

pm.status_path = /狀態 ping.path = /平

我希望會允許我乾脆去:

http://mydomain.com/status

拉起狀態頁。當我去這個網址時,我得到了404錯誤。我假設我需要某種處理程序來重定向/狀態和/ ping到本地主機端口9000上的FPM服務器。我該怎麼做?

回答

9

您需要在apache(000-default ???)中設置默認虛擬主機來處理/ status和/ ping。我使用nginx的(道歉,但根據需要調整)和我default文件具有以下位置指令:

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; 
} 

,然後讓我curl localhost/status

您還需要改變你的php-fpm的配置(我的是www.conf)並取消行:

pm.status_path = /status 
ping.path = /ping 
3

這個線程幫助我太...漸漸白「空白」 PHP頁面。

的/ etc/nginx的/ fastcgi_params 加入這個

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;

工作就像一個魅力

+0

我嘗試了多個`fastcgi_param`變體。 `PATH_TRANSLATED`不是其中之一,但`REQUEST_URI`,`SCRIPT_FILENAME`是。 – renoirb 2015-02-20 18:47:53

1

我貼一個完整的Q &針對此有關的Bitnami LAMP堆疊在這裏:

Set up and access the PHP-FPM status page in Bitnami LAMP stack

細節也應該適用於您的設置,但你可能會需要Apache的配置更改爲類似:

<LocationMatch "/php_fpm_status"> 
    SetHandler php5-fpm 
</LocationMatch> 

在基本條件,處理程序應該匹配任意名稱我們首先使用發送文件到PHP-FPM。當使用bitnami相關的conf設置的樣子:

<IfDefine USE_PHP_FPM> 
    <Proxy "unix:/path/to/bitnami/php/var/run/www.sock|fcgi://www-fpm" timeout=300> 
    </Proxy> 
    <FilesMatch \.php$> 
    SetHandler "proxy:fcgi://www-fpm" 
    </FilesMatch> 
</IfDefine> 

因此,對於這種設置,我們使用:

<LocationMatch "/php_fpm_status"> 
    SetHandler "proxy:fcgi://www-fpm" 
</LocationMatch> 

但對於任何其他安裝查找你所使用的一般爲PHP-FPM,然後在爲狀態頁設置處理程序時複製該文件。