PHP 5.4.16和PHP 7.2.24的区别
之前一直用的是Centos7,用yum安装的php-fpm是5.4.16版本的,最近玩Docker的时候经常用Centos8的镜像,用yum安装php-fpm时,也没留意,按照Centos7时候的版本进行操作,发现连启动都启动不了,后来发现Centos8用yum安装的php-fpm是7.2.24的,所以有很多不一样。
[root@Centos7 ~]# yum provides php-fpm
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
php-fpm-5.4.16-48.el7.x86_64 : PHP FastCGI Process Manager
Repo : base
php-fpm-5.4.16-48.el7.x86_64 : PHP FastCGI Process Manager
Repo : @base
[root@Centos8 /]# yum provides php-fpm
CentOS-8 - Base - mirrors.aliyun.com 915 kB/s | 2.2 MB 00:02
CentOS-8 - Extras - mirrors.aliyun.com 68 kB/s | 8.1 kB 00:00
CentOS-8 - AppStream - mirrors.aliyun.com 1.1 MB/s | 5.8 MB 00:05
Extra Packages for Enterprise Linux Modular 8 - x86_64 4.8 kB/s | 97 kB 00:20
Extra Packages for Enterprise Linux 8 - x86_64 1.1 MB/s | 8.2 MB 00:07
php-fpm-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64 : PHP FastCGI Process Manager
Repo : @System
Matched from:
Provide : php-fpm = 7.2.24-1.module_el8.2.0+313+b04d0a66
php-fpm-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64 : PHP FastCGI Process Manager
Repo : AppStream
Matched from:
Provide : php-fpm = 7.2.24-1.module_el8.2.0+313+b04d0a66
配置文件内容不同:
[root@Centos7 ~]# vim /etc/php-fpm.d/www.conf
PHP 5.4.16配置文件里面listen默认时127.0.0.1:9000,而PHP 7.2.24的则不是,如下图:
启动过程不同:
直接用命令启动PHP 7.2.24是不行的,要修改listen的值
[root@Centos8 /]# php-fpm
[04-Nov-2020 04:40:38] ERROR: unable to bind listening socket for address '/run/php-fpm/www.sock': No such file or directory (2)
[04-Nov-2020 04:40:38] ERROR: FPM initialization failed
修改完之后,再次用命令启动,发现还是不行:
[root@Centos8 /]# php-fpm
[04-Nov-2020 04:42:31] ERROR: Unable to create the PID file (/run/php-fpm/php-fpm.pid).: No such file or directory (2)
[04-Nov-2020 04:42:31] ERROR: FPM initialization failed
根据报错,还要手动给PID创建目录
[root@Centos8 /]# mkdir /run/php-fpm
[root@Centos8 /]# php-fpm
[root@Centos8 /]#
进行了上面的操作之后,再进行启动,发现已经可以启动成功,查看端口也有,但是与PHP 5.4.16不同的地方在于,PHP 5.4.16使用php-fpm命令直接启动时,php是一个前台进程,而PHP 7.2.24直接用命令启动时,默认是后台进程。
PHP 7.2.24想要作为前台进程运行的话,要加参数:
[root@Centos8 /]# php-fpm -F
[04-Nov-2020 04:47:44] NOTICE: fpm is running, pid 96
[04-Nov-2020 04:47:44] NOTICE: ready to handle connections
[04-Nov-2020 04:47:44] NOTICE: systemd monitor interval set to 10000ms
上述的操作在PHP 5.4.16中都是不需要操作的,直接yum安装下来就能用命令启动,而PHP 7.2.24则需要进行一些操作。
以上仅仅是在启动过程的不同,其他肯定还有很多地方不一样,后续再探讨。