yum 方式(CentOS 7 + PHP 8.0)
#!/bin/bash
# 脚本名称:php-install.yum.sh
# 执行权限:chmod +x php-install.yum.sh
# 安装 epel 源
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# 安装 remi 源
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 安装 yum 源管理工具
yum install -y yum-utils
# 允许仓库
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php80
# 安装 PHP 组件
yum install -y php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring \
php-curl php-xml php-pear php-bcmath php-json php-redis --skip-broken
# 安装 php-fpm 进程管理器
yum install -y php-fpm
源码方式(PHP 7.4.30)
#!/bin/bash
# 脚本名称:php-install.source.sh
# 工作目录:/usr/local/src 安装目录:/usr/local/php
# 解决依赖
yum install -y libxml2 libxml2-devel
yum install -y openssl openssl-devel
yum install -y curl curl-devel
yum install -y sqlite-devel
cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.30.tar.gz
tar -zxvf php-7.4.30.tar.gz
cd php-7.4.30
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--with-fpm-user=php-fpm --with-fpm-group=php-fpm
make && make install
make test
/usr/local/php/bin/php -v
docker 方式
#!/bin/bash
# 脚本名称:php-install.docker.sh
docker pull php:latest
docker run --name myphp -p 80:80 -d php:latest
dnf 方式(CentOS 8+ / RHEL 8+,PHP 8)
# 更新系统
sudo dnf update
sudo dnf upgrade
sudo reboot
# 启用 EPEL & Remi 软件库
# PHP 8 在 CentOS 8 / RHEL 8 默认仓库中不可用,必须启用 EPEL 和 remi
dnf install -y epel-release
dnf install -y http://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf install -y dnf-utils
# 查看可用版本并安装 Remi 模块
dnf module list php
dnf module reset php
dnf module install -y php:remi-8.3
# 安装 php-fpm 并启动
dnf install -y php-fpm
systemctl enable php-fpm --now
systemctl status php-fpm
# 安装常用扩展
dnf install -y php-{mysqlnd,xml,xmlrpc,curl,gd,imagick,mbstring,opcache,soap,zip}
PHP 运行参数建议
编辑 /etc/php.ini:
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
- 配合 HTTPD:
systemctl restart httpd - 配合 Nginx:编辑
/etc/php-fpm.d/www.conf后systemctl restart php-fpm
四种方式对比
| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| yum / dnf | 生产环境快速部署 | 有系统服务、易升级 | 版本受仓库限制 |
| 源码 | 需要定制编译参数 | 可控性最高 | 编译慢、升级麻烦 |
| docker | 本地开发、隔离环境 | 环境一致、秒级切换 | 需额外维护镜像与持久化 |