今天遇到个问题,我们 A 项目是 php7.1,B 项目是 php5.6;
php7.1 的项目用到了 yaconf,只支持 php7,用的是 mongodb 扩展。 php5.6 的项目还没来得及升级 mongodb 扩展,用的是 mongo 扩展,mongo 扩展不支持 php7 ;
所以开发环境安装了两套 php 环境,用绝对路径起了两个版本的 fpm,5.6 监听 9000,7.1 监听 9001,nginx 针对不同的域名做不同端口转发...做到了开发环境两个版本的 php 共存...
现在问题来了,不同版本的 fpm 是如何找到对应版本的 php-cgi 的呢?
我本来以为是通过 path,但我现在 path 设置的是 7.1 的,5.6 还能正常运行...
搜了下没找到太好的解释,特来求教
1
hheedat OP https://www.v2ex.com/t/383875 正好看到这个问题,如果说 php-fpm 内置了解释器的话,那其实也用不着 php-cgi 了?
|
2
torbrowserbridge 2017-08-18 10:29:17 +08:00
不需要 php-cgi
|
3
torbrowserbridge 2017-08-18 10:29:43 +08:00
FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation
|
4
0ZXYDDu796nVCFxq 2017-08-18 10:49:40 +08:00 via iPhone 1
编译的时候就指定了库的目录
试下以下命令 readelf php-fpm | grep -i path ldd php-fpm |
5
troycheng 2017-08-18 11:01:15 +08:00 1
php-fpm 中 php_fpm_CONF 指定了读取 fpm 配置的路径,你看一下 php-fpm 和 php-fpm.conf 的配置就可以明白了,你用 php-fpm 启动的都是指定了路径的,不存在从 path 中寻找 php 版本的问题。
php_fpm_BIN=**** php_fpm_CONF=**** |
7
0ZXYDDu796nVCFxq 2017-08-18 12:54:37 +08:00 via iPhone
对了,最准确就是 phpinfo,应该包含了各种各样的环境和配置参数,编译参数
|
8
julyclyde 2017-08-21 19:01:34 +08:00
fpm 是独立执行的,不存在所谓“对应的 php-cgi ”这一说
|