下面以 CentOS 7 / 8 为例,介绍 从源码编译安装 PHP 的完整流程。示例以 PHP 8.1 为例,其他版本步骤基本一致。
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
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,可手动编译安装。
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 \
--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
编译时间较长,耐心等待
cp php.ini-production /usr/local/php/etc/php.ini
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
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
systemctl daemon-reload
systemctl start php-fpm
systemctl enable php-fpm
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
onigurumawget 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
config.log-devel✅ 生产环境建议
如果你需要:
告诉我你的具体需求,我可以给你定制方案 ✅