centos7.9 编译安装php8.1.4

安装前请确保安装了 libzip 和oniguruma

//安装依赖
yum -y install libtool automake epel-release libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel uuid libuuid-devel gcc bzip2 bzip2-devel gmp-devel  readline-devel libxslt-devel autoconf bison gcc gcc-c++ sqlite-devel
//然后配置用户和组

//创建  www 组 
groupadd www

//新建用户并指定用户组 useradd -g groupname username
useradd -g www www

//下载php 安装包
wget -c https://www.php.net/distributions/php-8.1.4.tar.gz
//解压并进入安装包
tar -zvxf php-8.1.4.tar.gz
cd php-8.1.4

下列编译参数任选其一

编译参数一(推荐)

//这里我们指定了www用户和组 其他的配置参数自行了解
./configure \
--prefix=/usr/local/php/8.1.4 \
--with-config-file-path=/usr/local/php/8.1.4/etc \
--with-config-file-scan-dir=/usr/local/php/8.1.4/etc/conf.d \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-fpm \
--enable-soap \
--with-openssl \
--with-openssl-dir \
--with-zlib \
--with-iconv \
--with-bz2 \
--enable-gd \
--with-jpeg \
--with-freetype \
--with-curl \
--enable-dom \
--with-xml \
--with-zip \
--enable-mbstring \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-xsl \
--enable-mysqlnd \
--with-mysqli \
--without-pear \
--disable-short-tags

编译参数二

//编译的时候不指定用户组,和上面的方式区别在于 需要手动指定www用户和组要不然它会默认为nobody  其他的地方都不便

./configure \
--prefix=/usr/local/php/8.1.4 \
--with-config-file-path=/usr/local/php/8.1.4/etc \
--with-config-file-scan-dir=/usr/local/php/8.1.4/etc/conf.d \
--enable-fpm \
--enable-soap \
--with-openssl \
--with-openssl-dir \
--with-zlib \
--with-iconv \
--with-bz2 \
--enable-gd \
--with-jpeg \
--with-freetype \
--with-curl \
--enable-dom \
--with-xml \
--with-zip \
--enable-mbstring \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-xsl \
--enable-mysqlnd \
--with-mysqli \
--without-pear \
--disable-short-tags

编译参数选好后接下来我们执行编译和安装

make
//编译完成后也可以执行下

make test              (可选 ,自愿) 

//然后就是安装了
make install

//如果报libzip 错误请检查libzip是否安装,还有PKG_CONFIG_PATH是否添加,这东西重启会失效

配置参数

//从安装包中复制php.ini-production  到安装目录,改名成php.ini
cp php.ini-production /usr/local/php/8.1.4/etc/php.ini
cd /usr/local/php/8.1.4/etc/
cp php-fpm.conf.default php-fpm.conf

//设置php-fpm.pid 路径
vi php-fpm.conf

//去掉 php-fpm.pid 路径的注释
;pid = run/php-fpm.pid
//改成下面这样,去掉前面的 ; 号 这样我们在php-fpm 启动后就可以在/usr/local/php/8.1.4/var/run/ 里面看到php-fpm.pid了
pid = run/php-fpm.pid

//保存
wq!

//添加www.conf配置文件
cd php-fpm.d/
cp www.conf.default  www.conf

当选择编译参数二的时候 编译参数是没有指定用户组 所以我们需要修改用户和组为www

//修改用户和组 为 www
vi www.conf 

//注意:用户名和组后面不要有多余的空格,要不然会凉
user = www
group = www

//保存
wq!

上面这段带注释操作只有 选择编译参数二的时候才需要执行

接下来添加软链接 用于我们平时使用的 php命令 如 php -v 等

ln -s /usr/local/php/8.1.4/bin/php /usr/bin/php
//这时候我们输入php -v 就能看到php版本号了

最后,配置开机启动

vi /lib/systemd/system/php-fpm.service

//然后输入以下内容
[Unit]
Description=The PHP 8.1.4 FastCGI Process Manager
Documentation=man:php-fpm8.1.4(8)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/php/8.1.4/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/8.1.4/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target

保存
wq!

加载service文件
systemctl daemon-reload

设置开机自动启动
systemctl enable php-fpm.service

以下操作可选,不是必须,但是推荐做一下

把phpize 软链到/usr/bin/  方便以后安装 扩展 例如 phpredis 扩展等 
ln -s /usr/local/php/8.1.4/bin/phpize /usr/bin/phpize

这样我们就大功告成了~!!!