安装前请确保安装了 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
这样我们就大功告成了~!!!