Rocky8.5编译安装PHP8.4
一、编译安装PHP8.4
bash
#安装依赖包
[root@rocky8 ~]#dnf -y groupinstall 'Development Tools'
[root@rocky8 ~]#dnf -y install aria2
[root@rocky8 ~]#dnf -y install gcc gcc-c++ autoconf automake make libtool openssl-devel libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel libjpeg-devel libjpeg-turbo-devel libpng-devel libwebp-devel libcurl-devel libffi-devel libzip-devel bzip2-devel mysql-devel zlib-devel readline-devel libicu-devel lrzsz postgresql-devel postgresql-libs
#rocky8编译依赖包链接:https://dl.rockylinux.org/pub/rocky/8/devel/x86_64/os/Packages/
[root@rocky8 ~]#cd /usr/local/src
https://dl.rockylinux.org/pub/rocky/8/devel/x86_64/os/Packages/o/oniguruma-devel-6.8.2-3.el8.x86_64.rpm
oniguruma-devel-6.8.2-3.el8.x86_64.rpm
[root@rocky8 src]#dnf -y install oniguruma-devel-6.8.2-3.el8.x86_64.rpm
https://dl.rockylinux.org/pub/rocky/8/devel/x86_64/os/Packages/l/libzip-devel-1.5.1-2.module%2Bel8.4.0%2B413%2Bc9202dda.x86_64.rpm
libzip-devel-1.5.1-2.module+el8.4.0+413+c9202dda.x86_64.rpm
[root@rocky8 src]#dnf -y install libzip-devel-1.5.1-2.module+el8.4.0+413+c9202dda.x86_64.rpm
#下载PHP源码包
[root@rocky8 src]##aria2c -x 16 -s 16 -c -k 1M --max-download-limit=0 https://www.php.net/distributions/php-8.4.11.tar.xz
[root@rocky8 src]#ll -h php-8.4.11.tar.xz
-rw-r--r-- 1 root root 14M Jul 16 19:09 php-8.4.11.tar.xz
[root@rocky8 src]#tar xf php-8.4.11.tar.xz
[root@rocky8 src]#cd php-8.4.11/
#编译安装
[root@rocky8 php-8.4.11]#./configure --prefix=/apps/php8.4 --enable-mysqlnd --sysconfdir=/etc/php --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-jpeg --with-mhash --enable-mbstring --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-pdo-pgsql --with-ffi --enable-exif --enable-pcntl --with-curl --with-pcre-jit --disable-fileinfo --enable-xml --enable-fpm --with-zip --enable-sockets 'CFLAGS=-fPIE -O2' 'LDFLAGS=-pie' 'PHP_LDFLAGS=-pie'
[root@rocky8 php-8.4.11]#make -j 2
[root@rocky8 php-8.4.11]#make install
[root@rocky8 php8.4]#/apps/php8.4/bin/php -v
PHP 8.4.11 (cli) (built: Jul 18 2026 02:14:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.11, Copyright (c) Zend Technologies
[root@rocky8 php8.4]#ln -s /apps/php8.4/bin/php /usr/local/bin/php
[root@rocky8 php8.4]#php -v
PHP 8.4.11 (cli) (built: Jul 18 2026 02:14:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.11, Copyright (c) Zend Technologies
二、准备PHP配置文件
bash
[root@rocky8 php8.4]#cd /usr/local/src/php-8.4.11
[root@rocky8 php-8.4.11]#cp php.ini-production /etc/php.ini
[root@rocky8 php-8.4.11]#cd /etc/php/
[root@rocky8 php]#ls
php-fpm.conf.default php-fpm.d
[root@rocky8 php]#cp /etc/php/php-fpm.conf.default /etc/php/php-fpm.conf
[root@rocky8 php]#cd /etc/php/php-fpm.d/
[root@rocky8 php-fpm.d]#ls
www.conf.default
[root@rocky8 php-fpm.d]#cp /etc/php/php-fpm.d/www.conf.default /etc/php/php-fpm.d/www.conf
[root@rocky8 php-fpm.d]#vim /etc/php/php-fpm.d/www.conf
[root@rocky8 php-fpm.d]#grep '^[^;]' www.conf
[www]
user = www
group = www
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /pm_status
ping.path = /ping
access.log = log/$pool.access.log
slowlog = log/$pool.log.slow
[root@rocky8 php-fpm.d]#useradd -r -s /sbin/nologin www
[root@rocky8 php-fpm.d]#mkdir /apps/php8.4/log
[root@rocky8 php-fpm.d]#vim /etc/php.ini
expose_php = Off
post_max_size = 30M
upload_max_filesize = 20M
[root@rocky8 php-fpm.d]#/apps/php8.4/sbin/php-fpm -t #测试配置文件语法
三、启动并验证 php-fpm 服务
bash
[root@rocky8 php-fpm.d]#cp /usr/local/src/php-8.4.11/sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@rocky8 php-fpm.d]#systemctl daemon-reload
[root@rocky8 php-fpm.d]#systemctl enable --now php-fpm.service
[root@rocky8 php-fpm.d]#ss -ntlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 100 127.0.0.1:25 0.0.0.0:* users:(("master",pid=1126,fd=16))
LISTEN 0 128 127.0.0.1:46215 0.0.0.0:* users:(("hbrclient",pid=738,fd=9))
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:* users:(("php-fpm",pid=3399,fd=13),("php-fpm",pid=3398,fd=13),("php-fpm",pid=3397,fd=11))
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1213,fd=8),("nginx",pid=1209,fd=8))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1131,fd=5))
LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1126,fd=17))
LISTEN 0 128 *:9090 *:* users:(("systemd",pid=1,fd=33))
LISTEN 0 70 *:33060 *:* users:(("mysqld",pid=1473,fd=24))
LISTEN 0 128 *:3306 *:* users:(("mysqld",pid=1473,fd=26))
[root@rocky8 php-fpm.d]#pstree -p |grep php
|-php-fpm(3397)-+-php-fpm(3398)
| `-php-fpm(3399)
[root@rocky8 php-fpm.d]#ps -ef |grep php
root 3397 1 0 14:24 ? 00:00:00 php-fpm: master process (/etc/php/php-fpm.conf)
www 3398 3397 0 14:24 ? 00:00:00 php-fpm: pool www
www 3399 3397 0 14:24 ? 00:00:00 php-fpm: pool www
root 3420 2092 0 14:44 pts/1 00:00:00 grep --color=auto php