使用 PHP-FPM 和 Apache 2.4 使多个池工作

使用 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 相同的用户和不同的用户身份运行另一个端口的池;这似乎没有任何区别。

我是否遗漏了某个特定设置?

答案1

此问题是由于端口没有适当的 SELinux 安全上下文而导致的。运行sudo semanage port -a -t http_port_t -p tcp 8255将打开端口 8255 以允许正常提供服务。

相关内容