CentOS系统下如何安装PHP及相关扩展?

在 CentOS 系统下安装 PHP 及相关扩展,推荐使用 Remi 仓库(支持较新的 PHP 版本)或 EPEL + IUS 仓库。以下是基于 CentOS 7/8 的完整步骤(以 PHP 8.2 为例):


✅ 一、准备工作

1. 更新系统并安装基础工具

sudo yum update -y
sudo yum install -y epel-release wget curl git

2. 安装 Remi 仓库(推荐)

# CentOS 7
sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# CentOS 8 / Stream
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

⚠️ 注意:Remi 仓库默认启用 remi-php 模块,但需先禁用默认的 php 模块(CentOS 8+):

# CentOS 8+
sudo dnf module disable php -y
sudo dnf module enable remi-php82 -y   # 替换为所需版本:php80, php81, php82, php83

✅ 二、安装 PHP 核心及常用扩展

方式 A:使用 dnf/yum 安装(推荐)

# 安装 PHP 8.2 核心 + 常用扩展(根据需求调整)
sudo dnf install -y 
  php php-cli php-common php-fpm php-mysqlnd 
  php-gd php-mbstring php-xml php-json php-curl 
  php-zip php-opcache php-intl php-bcmath php-ldap 
  php-imap php-soap php-pdo php-pgsql php-sqlite3

🔍 查看可用扩展列表:

dnf search php- | grep "^php-"

方式 B:安装特定扩展(如 Redis、RedisJSON、xdebug 等)

# Redis 扩展(通过 PECL 或 remi 提供)
sudo dnf install -y php-pecl-redis   # 若 remi 提供

# Xdebug(调试用,生产环境慎用)
sudo dnf install -y php-xdebug

# Composer 依赖的扩展(如 intl, bcmath 等通常已包含)

✅ 三、配置与启动服务

1. 编辑 PHP-FPM 配置(可选)

sudo vi /etc/php.ini          # 全局配置
sudo vi /etc/php-fpm.d/www.conf  # 虚拟主机配置

常见修改项:

  • memory_limit = 512M
  • max_execution_time = 300
  • date.timezone = "Asia/Shanghai"

2. 启动并设置开机自启

sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

3. 验证安装

php -v
php --modules | grep -i mysql
php -m | grep opcache

创建测试文件 /var/www/html/info.php:

<?php phpinfo(); ?>

访问 http://your-ip/info.php 确认。


✅ 四、常见问题处理

问题 解决方案
No package php available 确保已正确导入 Remi 仓库并启用对应 PHP 模块
扩展编译失败 安装开发包:sudo dnf install -y php-devel gcc make
Nginx/Apache 无法加载 PHP 检查 Web 服务器是否配置了 FastCGI 连接(Nginx: fastcgi_pass unix:/run/php-fpm.sock;Apache: LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so + SetHandler "proxy:fcgi://127.0.0.1:9000")
需要旧版 PHP(如 7.4) 将 remi-php82 改为 remi-php74 即可

📌 补充建议

  • 生产环境:关闭 display_errors,启用 opcache,限制 max_execution_time。
  • 多版本共存:Remi 支持同时安装多个 PHP 版本(如 php80, php81, php82),通过 alternatives 或指定 php82 命令调用。
  • 自动化部署:可结合 Ansible/SaltStack 批量管理。

需要我为你生成一个针对具体场景(如 WordPress、Laravel、ThinkPHP)的优化配置模板吗?