在几天之内找不到困扰我的问题的答案:
根据虚拟主机文件中的Apache documentation,我应该这样写:
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/path/to/socket.sock|fcgi://127.0.0.1:9000/path/to/your/documentroot/
但是我是否必须将其他fcgi端口用于其他站点?例如
...socket2.sock|fcgi://127.0.0.1:9001...
...socket3.sock|fcgi://127.0.0.1:9002...
或者
...socket2.sock|fcgi://127.0.0.1:9000...
...socket3.sock|fcgi://127.0.0.1:9000...
它可以双向工作-日志或屏幕上都没有错误。我知道,如果我使用TCP而不是UNIX套接字,那么我应该为每个站点使用不同的端口(如果使用相同的端口,也会抛出错误),但是我不确定我是否理解这种Apache语法。
最佳答案
这完全取决于您如何为php-fpm配置工作池。
例如,在centos 7上,您将在/etc/php-fpm.d/中找到一个www.conf。
通常,这是端口9000的配置。
您可以对所有虚拟主机使用相同的端口,而不会出现任何问题。
但是,如果设计使您想要对不同的虚拟主机使用不同的端口,则只需复制www.conf,对其重命名并编辑文件。
确保在顶部更改池的名称。您会发现默认名称为[www]。您可以将其编辑为[your_preferred_pool_name]
然后,在监听选项中,您可以将端口更改为所需的端口。
重新启动php-fpm后,您将拥有[www]池和[your_preferred_pool_name]池。
要将虚拟主机配置为使用新池,只需通过将端口更新为conf文件中新定义的端口来更新ProxyPassMatch配置。
但是同样,为所有虚拟主机使用相同的池(端口)应该可以正常工作。
关于apache - Apache 2.4和PHP-FPM套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26359446/