在京东云的 CentOS 系统上安装 Nginx + PHP 8.4 时,由于 PHP 8.4 当前(截至 2025 年 4 月)仍处于开发阶段(如 alpha/beta 版本),官方 CentOS 仓库和主流第三方仓库(如 Remi、EPEL)可能尚未提供稳定包,因此容易出现依赖冲突。以下是一套安全、可控、避免依赖冲突的安装方案。
✅ 一、准备工作:系统更新与基础环境
# 更新系统
sudo yum update -y
# 安装基础工具
sudo yum install -y epel-release yum-utils wget vim git
✅ 二、避免依赖冲突的关键策略
1. 不要混用多个第三方仓库
- 避免同时启用 Remi、Webtatic、ius 等多个 PHP 仓库,容易导致冲突。
- 推荐使用 Remi 仓库(维护良好,兼容性高)。
2. 使用模块化仓库(yum module)或禁用默认 PHP 模块
# 查看是否有默认 PHP 模块
yum module list php
# 如果有,先重置
sudo yum module reset php -y
✅ 三、安装 Nginx(使用官方或 EPEL 仓库)
# 安装 Nginx(推荐 EPEL)
sudo yum install -y nginx
# 启动并设置开机自启
sudo systemctl enable nginx
sudo systemctl start nginx
验证:访问服务器公网 IP,应看到 Nginx 欢迎页。
✅ 四、安装 PHP 8.4(当前为开发版)
⚠️ 注意:PHP 8.4 尚未发布正式版,需从 Remi 仓库的测试频道 或 源码编译 安装。
✅ 推荐方案:使用 Remi 仓库(测试分支)
# 安装 Remi 仓库(支持 CentOS 7/8/Stream)
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E '%{centos_ver}').rpm
# 启用 PHP 8.4 测试模块(Remi 提供了 php84-testing)
sudo yum-config-manager --enable remi-php84
# 或启用测试频道(如果 php84-testing 存在)
sudo yum-config-manager --enable remi-safe # 保持安全依赖
安装 PHP 8.4(从 Remi)
sudo yum install -y php php-fpm php-cli php-common php-mysqlnd
php-gd php-xml php-mbstring php-json php-opcache
php-curl php-zip
💡 如果提示找不到 php8.4 包,说明 Remi 尚未提供,请跳到【源码安装】方案。
✅ 五、【备选方案】源码编译安装 PHP 8.4(最灵活,避免依赖冲突)
1. 安装编译依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel libxml2-devel bzip2-devel
curl-devel libpng-devel libjpeg-devel freetype-devel
oniguruma-devel sqlite-devel libzip-devel
2. 下载 PHP 8.4 源码(从官方 Git)
cd /tmp
git clone https://github.com/php/php-src.git
cd php-src
git checkout PHP-8.4 # 切换到 8.4 分支
3. 编译安装
./buildconf --force
./configure
--prefix=/usr/local/php84
--enable-fpm
--with-fpm-user=nginx
--with-fpm-group=nginx
--enable-mbstring
--enable-zip
--enable-bcmath
--enable-pcntl
--enable-sockets
--enable-opcache
--enable-intl
--with-zlib
--with-curl
--with-gd
--with-jpeg
--with-freetype
--with-openssl
--with-pdo-mysql
--disable-short-tags
--with-config-file-path=/usr/local/php84/etc
--with-config-file-scan-dir=/usr/local/php84/etc/conf.d
make -j$(nproc)
sudo make install
4. 配置 PHP-FPM
# 复制配置文件
sudo cp php.ini-development /usr/local/php84/etc/php.ini
sudo cp /usr/local/php84/etc/php-fpm.conf.default /usr/local/php84/etc/php-fpm.conf
sudo cp /usr/local/php84/etc/php-fpm.d/www.conf.default /usr/local/php84/etc/php-fpm.d/www.conf
# 创建符号链接(可选)
sudo ln -s /usr/local/php84/sbin/php-fpm /usr/local/bin/php-fpm
sudo ln -s /usr/local/php84/bin/php /usr/local/bin/php84
5. 启动 PHP-FPM
sudo /usr/local/php84/sbin/php-fpm
建议使用 systemd 管理(可写 service 文件)。
✅ 六、配置 Nginx 与 PHP-FPM 协同工作
编辑 Nginx 站点配置:
sudo vim /etc/nginx/conf.d/default.conf
内容示例:
server {
listen 80;
server_name your-domain-or-ip;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000; # 或 unix:/run/php-fpm.sock
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重启 Nginx:
sudo systemctl restart nginx
✅ 七、验证安装
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
访问:http://your-server-ip/info.php
应看到 PHP 8.4 的信息页面。
✅ 八、避免依赖冲突的最佳实践总结
| 措施 | 说明 |
|---|---|
| ✅ 使用单一仓库(如 Remi) | 避免 Remi + Webtatic 冲突 |
| ✅ 禁用默认 PHP 模块 | yum module reset php |
✅ 使用 yum-config-manager 精确启用仓库 |
控制软件源 |
| ✅ 源码安装隔离性强 | 不影响系统包,适合测试版 |
| ✅ 使用虚拟环境或容器(推荐生产) | Docker 可完全避免依赖问题 |
✅ 九、生产环境建议
- 不要在生产环境使用 PHP 8.4(开发版)
- 使用稳定版(如 PHP 8.2 或 8.3)
- 考虑使用 Docker 部署:
docker run -d -p 80:80 --name web nginx-php84
🔚 结论
在京东云 CentOS 上安装 Nginx + PHP 8.4:
- 若 Remi 支持:使用
remi-php84仓库 - 若不支持:源码编译安装是最安全、避免依赖冲突的方式
- 始终避免混合多个第三方仓库
- 生产环境请等待 PHP 8.4 正式发布并使用稳定包
如需自动化脚本或 systemd 服务配置,可继续提问。
云计算导航