rocky linux 9 默认仓库php版本过旧,需源码编译安装php 8.3.3:先创建www用户、启用epel、安装development tools及openssl-devel等依赖,手动补全oniguruma-devel和libzip-devel,再configure指定/data/app/php8.3路径、启用fpm与常用扩展,最后配置systemd服务并验证。

Rocky Linux 默认仓库中 PHP 版本较旧(如 8.1 或更低),要升级到 PHP 8.3,不能仅靠 dnf update php,必须通过源码编译或添加第三方仓库实现。推荐源码编译方式——它可控性强、版本精准、适配 Rocky 9 的底层组件(如 oniguruma-devel、libzip-devel),还能按需启用扩展(如 swoole、redis、amqp)。
准备系统环境与依赖
Rocky Linux 9 需先装齐开发工具和 PHP 编译必需的头文件与库:
- 创建专用用户(如
www)并加入组:groupadd www && useradd -g www www - 启用 EPEL:
dnf install -y epel-release - 安装基础构建工具:
dnf groupinstall "Development Tools" -y - 安装核心依赖:
dnf install -y wget gcc make autoconf automake libtool bison re2c openssl-devel libxml2-devel sqlite-devel libcurl-devel libpng-devel libjpeg-devel freetype-devel libwebp-devel libicu-devel libxslt-devel readline-devel systemd-devel - 手动安装 Rocky 9 官方源未同步的两个关键包(版本必须匹配):
wget https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/o/oniguruma-devel-6.9.6-1.el9.6.x86_64.rpmwget https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/l/libzip-devel-1.7.3-8.el9.x86_64.rpmdnf install -y oniguruma-devel-6.9.6-1.el9.6.x86_64.rpm libzip-devel-1.7.3-8.el9.x86_64.rpm
下载并编译 PHP 8.3.3
以 /data/app/php8.3 为目标路径为例:
- 下载源码:
mkdir -p /data/software && cd /data/software && wget https://www.php.net/distributions/php-8.3.3.tar.gz - 解压并进入目录:
tar -zxf php-8.3.3.tar.gz && cd php-8.3.3 - 运行 configure(关键参数含 FPM、安全扩展、常用驱动):
./configure --prefix=/data/app/php8.3 \<br> --with-config-file-path=/data/app/php8.3/etc \<br> --enable-fpm \<br> --with-fpm-user=www \<br> --with-fpm-group=www \<br> --enable-mbstring \<br> --with-openssl \<br> --with-curl \<br> --with-zlib \<br> --with-mysqli=mysqlnd \<br> --with-pdo-mysql=mysqlnd \<br> --enable-gd \<br> --with-jpeg \<br> --with-webp \<br> --with-freetype \<br> --with-zip \<br> --with-bz2 \<br> --enable-opcache \<br> --enable-pcntl \<br> --enable-sockets \<br> --enable-intl - 编译安装:
make -j$(nproc) && make install
配置与启用新 PHP
完成编译后需初始化配置、设置软链、启动服务:
- 复制配置文件:
cp /data/software/php-8.3.3/php.ini-production /data/app/php8.3/etc/php.ini - 配置 FPM:
cp /data/app/php8.3/etc/php-fpm.conf.default /data/app/php8.3/etc/php-fpm.conf,编辑php-fpm.conf确保pid和error_log路径可写;再复制池配置:cp /data/app/php8.3/etc/php-fpm.d/www.conf.default /data/app/php8.3/etc/php-fpm.d/www.conf,修改监听端口为127.0.0.1:8300或 socket 路径 - 创建软链接(方便调用):
ln -sf /data/app/php8.3/bin/php /usr/local/bin/php,同理链接php-fpm和phpize - 编写 systemd 服务文件(如
/etc/systemd/system/php83-fpm.service),指定ExecStart=/data/app/php8.3/sbin/php-fpm -y /data/app/php8.3/etc/php-fpm.conf,然后执行:systemctl daemon-reload && systemctl enable --now php83-fpm
验证与后续扩展
确认安装成功后,可逐步添加项目所需扩展:
- 检查版本:
/data/app/php8.3/bin/php -v应显示PHP 8.3.3 - 查看已加载模块:
/data/app/php8.3/bin/php -m | grep -E "(redis|swoole|amqp|pcntl)" - 若缺少扩展(如
phpredis),进入ext/redis目录,执行:/data/app/php8.3/bin/phpize && ./configure --with-php-config=/data/app/php8.3/bin/php-config && make && make install,再在php.ini中加extension=redis.so - 重启 FPM:
systemctl restart php83-fpm,再用php -m确认生效
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











