CentOS上编译PHP的详细步骤
在CentOS系统上,通过源代码编译安装PHP可以确保你使用的是最新版本,并且可以根据需要定制功能和优化性能,以下内容将详细介绍如何在CentOS 7和CentOS 8上编译并安装PHP,包括必要的依赖安装、配置选项、编译过程以及常见问题的解决方法。

准备工作
1、更新系统软件包:在开始之前,建议先更新系统的软件包,以确保安装的是最新的版本。
sudo yum update y # 对于CentOS 7 sudo dnf update y # 对于CentOS 8
2、安装编译工具和依赖:编译PHP需要一些基础的开发工具和库,以下是常用的依赖项:
sudo yum groupinstall 'Development Tools' y # 对于CentOS 7 sudo dnf groupinstall 'Development Tools' y # 对于CentOS 8
3、安装其他依赖包:根据你计划使用的PHP扩展,可能还需要安装额外的库。
sudo yum install y \
libxml2 libxml2devel \
openssl openssldevel \
bzip2 bzip2devel \
libcurl libcurldevel \
libjpeg libjpegdevel \
libpng libpngdevel \
freetype freetypedevel \
gmp gmpdevel \
libmcrypt libmcryptdevel \
readline readlinedevel \
libxslt libxsltdevel \
zlib zlibdevel \
glibc glibcdevel \
glib2 glib2devel \
ncurses ncursesdevel \
curl \
gdbmdevel \
db4devel \
libXpmdevel \
libX11devel \
gddevel \
gmpdevel \
expatdevel \
xmlrpcc xmlrpccdevel \
libicudevel \
libmcryptdevel \
libmemcacheddevel \
epelrelease下载和解压PHP源码
1、下载PHP源码:从PHP官方网站下载你需要的版本,下载PHP 8.1.9:
wget https://www.php.net/distributions/php8.1.9.tar.gz
2、解压源码包:
tar zxvf php8.1.9.tar.gz cd php8.1.9
配置和编译PHP
1、配置编译选项:运行./configure脚本来配置PHP,你可以使用help选项查看所有可用的配置选项,以下是一些常用的配置选项:

./configure \
prefix=/usr/local/php \
withconfigfilepath=/etc \
withfpmuser=www \
withfpmgroup=www \
withcurl \
withfreetypedir \
enablegd \
withgettext \
withiconvdir \
withkerberos \
withlibdir=lib64 \
withlibxmldir \
withmysqli \
withopenssl \
withpcreregex \
withpdomysql \
withpdosqlite \
withpear \
withpngdir \
withjpegdir \
withxmlrpc \
withxsl \
withzlib \
withbz2 \
withmhash \
enablefpm \
enablebcmath \
enablelibxml \
enableinlineoptimization \
enablembregex \
enablembstring \
enableopcache \
enablepcntl \
enableshmop \
enablesoap \
enablesockets \
enablesysvsem \
enablesysvshm \
enablexml \
enablezip \
enablefpm2、编译和安装:运行make和make install命令来编译和安装PHP。
make sudo make install
配置环境变量和启动FPM
1、配置环境变量:将PHP的可执行文件路径添加到系统的PATH环境变量中,编辑/etc/profile文件,添加以下内容:
export PATH=$PATH:/usr/local/php/bin
然后运行以下命令使更改生效:
source /etc/profile
2、配置php.ini:将默认的配置文件复制到合适的位置,并进行必要的修改。
sudo cp /usr/local/php/php.iniproduction /etc/php.ini
3、启动FPM:如果你启用了FPM,可以通过以下命令启动它:
sudo /usr/local/php/sbin/phpfpm daemonize
常见问题及解决方法
1、缺少依赖库:在编译过程中,如果遇到缺少某个库的错误,可以根据错误提示安装相应的开发包,如果缺少libzip库,可以执行以下命令:

sudo yum remove y libzip # 先删除旧版本 wget https://nih.at/libzip/libzip1.2.0.tar.gz # 下载新版libzip源码 tar zxvf libzip1.2.0.tar.gz # 解压源码包 cd libzip1.2.0 # 进入目录 ./configure # 配置 make && make install # 编译安装
2、动态链接库问题:如果在编译时出现与动态链接库相关的问题,可以尝试更新/etc/ld.so.conf文件,添加相关的路径,然后运行ldconfig命令更新配置。
echo '/usr/local/lib64' | sudo tee a /etc/ld.so.conf echo '/usr/local/lib' | sudo tee a /etc/ld.so.conf sudo ldconfig v
FAQs(相关问答)
1、Q1: 如何确认PHP是否正确安装?:可以通过运行php v命令来查看PHP的版本信息,如果显示出正确的版本号,则说明安装成功,还可以创建一个包含<?php phpinfo(); ?>的PHP文件,并在浏览器中访问该文件,查看PHP的信息页面以确认安装情况。
2、Q2: 编译PHP时报错“checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11”如何解决?:这个错误表示系统中的libzip库版本过低,需要升级到至少0.11版本,首先删除旧版本的libzip库,然后下载、编译并安装新版本的libzip库,具体步骤如下:
sudo yum remove y libzip # 删除旧版本 wget https://nih.at/libzip/libzip1.2.0.tar.gz # 下载新版libzip源码 tar zxvf libzip1.2.0.tar.gz # 解压源码包 cd libzip1.2.0 # 进入目录 ./configure # 配置 make && make install # 编译安装
