LNMP 下 PHP-FPM 多版本以及不同 PHP 配置的部署

在考虑容器部署 LNMP 实现松耦合或者微服务方案时,感觉从性能上和配置上而言,用容器来部署没有太多的优点,反而在安全上造成太多的问题。

正好在实际部署 PHP 应用的过程中,发现一个 PHP 原来是 Windows 上开发的很古老的应用,迁移到 Linux 以后,必须打开 open_short_tag 。但是在这次迁移到生产环境的服务器时,考虑安全因素,决定不全局打开这个开关,但是又不想更改代码,所以针对这种情况,解决的办法是 php-fpm 配置里,新添加一个 Web Pool,然后把 open_short_tag 配置到这个新的 php-fpm 配置里。 具体而言就是复制原先的 www.conf 到一个新的例如 newweb.conf 然后修改 listen 的端口号或者 socket 的路径, 然后添加以下这行:
php_flag[short_open_tag] = On
重新启动 php-fpm 服务后,就可以看到进程表里两个不同的pool , netstat -nat 可以看到新的端口号已经启动。

那么如果要让一台机器运行不同的 PHP 版本,怎么办?实际上,在 Fedora/CentOS 上用现成的 REMI 源 ,就可以直接安装不同版本的 php-fpm ,然后启动不同的服务名称就可以。
例如同时运行 php72 和 php73,可以
1. yum install -y php72-php-fpm php73-php-fpm
2. systemctl enable/start/status php72-php-fpm php73-php-fpm
当然因为默认配置都是启动 127.0.0.1:9000 端口,所以需要至少修改其中一个服务的配置,把端口修改为9001 之类的。
具体配置文件在哪里,软件都安装了那些文件,我们用 repoquery 就可以查看

作者: 甬洁网络

--移动互联网&物联网技术提供商