PHP 编译安装

1、官网下载安装包

wget http://www.taiww.com/phpsoft/php/php-7.2.34.tar.gz
或者原地址:wget https://www.php.net/distributions/php-7.2.34.tar.gz
mkdir ~/php /opt/php-7.2.34
tar -zxvf php-7.2.34.tar.gz -C ~/php    //解压到/root/php目录
cd ~/php/php-7.2.34

安装过程中,大概率提示缺少依赖,主要缺少的

2、依赖:

yum install -y libxml2-devel   //有些是这个yum install -y libxml2,有些可能名称也不一样,用yum search libxml去搜索
yum install -y libsqlite3-devel  //注意名称 不行就搜索换正确的,用yum list installed查看已经安装的 yum install curl-devel

3、开始编译

./configure --prefix=/opt/php-7.2.34 \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data  \
--with-pdo-mysql=mysqlnd \
--enable-zip \
--with-zlib-dir \
--with-curl \
--enable-sockets \
--enable-mbstring;
(见最后面更多参数)
make && make install
cd /opt/php
./php -v
安装完后,是没有php.ini的,需要手动去生成
find /root/php -name "php.ini*"
cp /root/php/php-7.2.34/php.ini-development /opt/php-7.2.34/lib/php.ini

二、以下根据需要配置
配置 php-fpm.conf 主文件:
cd /opt/php-7.2.34/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
将 pid = run/php-fpm.pid 前的 ; 去掉。
cd /opt/php-7.2.34/etc/php-fpm.d
cp www.conf.default www.conf
vim www.conf 设置其用户组、端口://默认端口 9000
#配置用户和组
user = www-data
group = www-data listen = 127.0.0.1:9002

启动:
/opt/php-7.2.34/sbin/php-fpm
若启动不报错,且有 9002 端口监听则启动正常
ps -ef | grep php-fpm

三、如何卸载源码安装的php
查看PHP版本
php -v
下面命令删除php不干净但先删一遍
yum remove php
查看剩下的php软件包,其中会有依赖所以得有先后顺序删除
rpm -qa | grep php
pdo是mysql的依赖项;common是gd的依赖项;所以先删除mysql,gd
rpm -e php-mysql
从这张图可以看到无法删除时会提醒你依赖的包,所以你就得先删除那个包,直到php -v运行后不再出现
更多可选参数:
--enable-fpm
--with-fpm-user=nginx
--with-fpm-group=nginx
--enable-inline-optimization
--disable-debug
--disable-rpath
--enable-shared
--enable-soap
--with-libxml-dir
--with-xmlrpc
--with-openssl
--with-mcrypt
--with-mhash
--with-pcre-regex
--with-sqlite3
--with-zlib
--enable-bcmath
--with-iconv
--with-bz2
--enable-calendar
--with-cdb
--enable-dom
--enable-exif
--enable-fileinfo
--enable-filter
--with-pcre-dir
--enable-ftp
--with-gd
--with-openssl-dir
--with-jpeg-dir
--with-png-dir
--with-zlib-dir
--with-freetype-dir
--enable-gd-native-ttf
--with-gettext
--with-gmp
--with-mhash
--enable-json
--enable-mbstring
--enable-mbregex
--enable-mbregex-backtrack
--with-libmbfl
--with-onig
--enable-pdo
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-zlib-dir
--with-pdo-sqlite
--with-readline
--enable-session
--enable-shmop
--enable-simplexml
--enable-sockets
--enable-sysvmsg
--enable-sysvsem
--enable-sysvshm
--enable-wddx
--with-libxml-dir
--with-xsl
--enable-zip
--enable-mysqlnd-compression-support
--with-pear
--enable-opcache
--with-curl