使用 PHP-FPM 和 Apache 2.4 讓多個池工作
如果 PHP-FPM 池不在埠 9000 上,我遇到了無法啟動的問題。當我嘗試在埠 9001 上啟動第二個池時出現以下錯誤:
Jun 13 12:40:49 localhost.localdomain systemd[1]: Starting The PHP FastCGI Process Manager... Jun 13 12:40:49 localhost.localdomain php-fpm[12862]: [13-Jun-2014 12:40:49] ERROR: unable to bind listening socket for address '127.0.0.1:8255': Permission denied (13) Jun 13 12:40:49 localhost.localdomain php-fpm[12862]: [13-Jun-2014 12:40:49] ERROR: FPM initialization failed Jun 13 12:40:49 localhost.localdomain systemd[1]: php-fpm.service: main process exited, code=exited, status=78/n/a Jun 13 12:40:49 localhost.localdomain systemd[1]: Failed to start The PHP FastCGI Process Manager. Jun 13 12:40:49 localhost.localdomain systemd[1]: Unit php-fpm.service entered failed state.
我嘗試了許多埠,但我唯一可以使用的埠是 9000 埠。
我找不到任何表明埠 9001 實際在系統上使用的資訊。Apache 工作正常,PHP 本身工作正常,即使 FPM 也工作得很好,只要我只在埠 9000 上。
我在 Fedora 20 和 CentOS 6.5 上都遇到過這個問題。
我設置了兩個 FPM 池,一個在埠 9000 上執行,一個在另一個埠上。除了單個配置更改之外,池是相同的。我嘗試以與埠 9000 相同的使用者和不同的使用者身份執行另一個埠的池;這似乎沒有任何區別。
是否有我缺少的特定設置?
此問題是由於埠沒有適當的 SELinux 安全上下文引起的。執行
sudo semanage port -a -t http_port_t -p tcp 8255
將打開埠 8255 以允許正常服務。