Linux下安装PHP7及配置phpfpm开机启动

下载安装包
以下以CentOS 7为例,安装PHP的运行环境
首先打开PHP官网下载最新版
这里下载最新版7.3.7 的源码包

解压安装包
1tar -zxvf php-7.3.7.tar.gz
2cd php-7.3.7编译安装
配置前如果没有libxml2和libxml2-devel会报错,所以应该更新libxml2并安装libxml2-devel
1yum -y install libxml2 yum -y install libxml2-devel因为不同环境,系统安装完整程度也不尽相同,所以建议安装操作系统的时候做必要选择,也可以统一执行一遍所有的命令,汇总如下:
1yum -y install openssl
2yum -y install openssl-devel
3yum -y install curl
4yum -y install curl-devel
5yum -y install libjpeg
6yum -y install libjpeg-devel
7yum -y install libpng
8yum -y install libpng-devel
9yum -y install freetype
10yum -y install freetype-devel
11yum -y install pcre
12yum -y install pcre-devel
13yum -y install libxslt
14yum -y install libxslt-devel
15yum -y install bzip2
16yum -y install bzip2-devel以上这些包基本上够用了,如果发现问题再补充
最新的PHP版本,需要使用参数--with-libzip系统库,并且版本需要>=1.11,而centos上最新的yum源版本为1.10版本太低编译时会报错,需要手动编译源码包解决,libzip官网
注意libzip编译需要cmake如果没有要先安装cmake
libzip安装如下:
1tar -xvzf libzip-1.5.2.tar.gz
2cd libzip-1.5.2
3mkdir build && cd build/
4cmake ..
5make && make install安装完成之后,执行配置:
注意--prefix参数为安装位置,这里为/usr/php
1./configure --prefix=/usr/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --with-libzip新版
1'./configure' '--prefix=/usr/php' '--with-curl' '--with-freetype' '--with-gettext' '--with-iconv-dir' '--with-kerberos' '--with-libdir=lib64' '--with-mysqli' '--with-openssl' '--with-pdo-mysql' '--with-pdo-sqlite' '--with-pear' '--with-jpeg' '--with-xmlrpc' '--with-xsl' '--with-zlib' '--with-bz2' '--with-mhash' '--enable-fpm' '--enable-bcmath' '--enable-inline-optimization' '--enable-mbregex' '--enable-mbstring' '--enable-opcache' '--enable-pcntl' '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-xml' '--enable-gd'然后执行编译安装:
1make && make installphp的默认安装位置上面已经指定为/usr/php,接下来配置相应的文件:
1cp php.ini-development /usr/php/lib/php.ini
2cp /usr/php/etc/php-fpm.conf.default /usr/php/etc/php-fpm.conf
3cp sapi/fpm/php-fpm /usr/local/bin
4cp /usr/php/etc/php-fpm.d/www.conf.default /usr/php/etc/php-fpm.d/www.conf配置成自启服务
1复制文件
2cp 源码路径/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
3添加权限
4chmod 755 /etc/init.d/php-fpm
5添加启动项
6chkconfig –add php-fpm
7启动服务
8service php-fpm start启动完毕之后,php-fpm服务默认使用9000端口,使用 netstat -tln | grep 9000 可以查看端口使用情况:
9000端口正常使用,说明php-fpm服务启动成功

问题
最新版7.4:
No package 'sqlite3' found
yum install sqlite-devel再次运行上方的configure命令No package 'oniguruma' found
安装 oniguruma,可以参考https://github.com/kkos/oniguruma#install
yum install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/o/oniguruma-5.9.5-3.el7.x86_64.rpm
yum install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/o/oniguruma-devel-5.9.5-3.el7.x86_64.rpm