[PHP] PHP-FPM Pool Socket (Multi-Sock-User) 設定指南

Intro

情境:想要某個Site的PHP-FPM改變執行使用者(例如Webhook trigger特殊程式)


設定方式

概念上,一個pool sock擁有一組設定,包含執行使用者(user)或群組(group),所以可以利用開立多個pool sock來提供給Web server多種PHP-FPM Conf達到應用。

1. 開立新的pool

PHP-FPM Pool設定複製原始www.conf出新的自定義設定檔,將listen sock自定義改掉,讓var/run/php下自動產生新定義的socket,例如/etc/php/7.0/fpm/pool.d/deployer.conf:

; pool name ('www' here)
[deployer]

user = deployer
group = www-data

listen = /run/php/php7.0-fpm_deployer.sock

設定完後restart PHP-FPM即會自動生成對應的新Sock

2. 提供新的Socket給Web server site

以Nginx為例,換上新的Socket:

location ~ \.php$ {                                     
    include snippets/fastcgi-php.conf;                  
    fastcgi_pass unix:/run/php/php7.0-fpm_deployer.sock;
}

Leave a Reply

Your email address will not be published. Required fields are marked *