温馨提示×

CentOS如何编译安装PHP

小樊
35
2026-07-08 03:10:46
栏目: 编程语言

下面以 CentOS 7 / 8 为例,介绍 从源码编译安装 PHP 的完整流程。示例以 PHP 8.1 为例,其他版本步骤基本一致。


一、准备编译环境

1. 安装依赖包(非常重要)

CentOS 7

yum install -y epel-release
yum install -y \
gcc gcc-c++ make \
autoconf automake \
libxml2-devel \
sqlite-devel \
openssl-devel \
curl-devel \
libpng-devel \
libjpeg-devel \
freetype-devel \
oniguruma-devel \
libzip-devel \
bzip2-devel \
readline-devel \
zlib-devel

CentOS 8 / Stream

dnf install -y \
gcc gcc-c++ make \
autoconf automake \
libxml2-devel \
openssl-devel \
curl-devel \
libpng-devel \
libjpeg-devel \
freetype-devel \
oniguruma-devel \
libzip-devel \
bzip2-devel \
readline-devel \
zlib-devel

如果缺少 oniguruma,可手动编译安装。


二、下载 PHP 源码

cd /usr/local/src
wget https://www.php.net/distributions/php-8.1.27.tar.gz
tar -zxvf php-8.1.27.tar.gz
cd php-8.1.27

三、配置编译参数(configure)

常用配置示例(适合 Web 服务器)

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--enable-mbstring \
--enable-opcache \
--enable-bcmath \
--enable-sockets \
--enable-gd \
--with-freetype \
--with-jpeg \
--with-curl \
--with-openssl \
--with-zlib \
--with-zip \
--with-mysqli \
--with-pdo-mysql \
--with-readline

✅ 说明:

  • --prefix:PHP 安装目录
  • --enable-fpm:启用 PHP-FPM(推荐)
  • --with-mysqli / --with-pdo-mysql:MySQL 支持

查看所有参数:

./configure --help

四、编译并安装

make -j$(nproc)
make install

编译时间较长,耐心等待


五、配置 PHP

1. 复制配置文件

cp php.ini-production /usr/local/php/etc/php.ini

2. 配置 PHP-FPM

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

编辑 www.conf(可选):

user = nginx
group = nginx

六、设置 systemd 服务(CentOS 7/8)

1. 创建服务文件

vim /usr/lib/systemd/system/php-fpm.service

内容如下:

[Unit]
Description=PHP FastCGI Process Manager
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2. 启动并设置开机启动

systemctl daemon-reload
systemctl start php-fpm
systemctl enable php-fpm

七、添加 PHP 到环境变量

vim /etc/profile.d/php.sh

内容:

export PATH=/usr/local/php/bin:$PATH

生效:

source /etc/profile

验证:

php -v

八、验证安装

php -v
php -m
php-fpm -v

九、常见问题

1. 缺少 oniguruma

wget https://github.com/kkos/oniguruma/releases/download/v6.9.8/onig-6.9.8.tar.gz
tar -zxvf onig-6.9.8.tar.gz
cd onig-6.9.8
./configure && make && make install

2. 编译失败

  • 查看 config.log
  • 缺少哪个库就安装对应的 -devel

十、推荐方案(补充)

生产环境建议

  • 使用 Remi 仓库 安装 PHP(更稳定、升级方便)
  • 编译安装适合:
    • 需要定制模块
    • 嵌入式 / 特殊环境

如果你需要:

  • 指定 PHP 版本
  • 搭配 Nginx / Apache
  • 编译 Swoole / Redis / Imagick 扩展

告诉我你的具体需求,我可以给你定制方案 ✅

0