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 \
- enablefpm
2、编译和安装:运行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 # 编译安装