CentOS安装PHP源码教程
准备工作
在开始安装PHP之前,确保您的CentOS系统已经更新到最新状态,以下是更新系统包的命令:

sudo yum update -y
安装编译环境
PHP是一个C语言编写的程序,因此需要安装一些编译环境依赖,以下命令可以安装所有必要的编译环境:
sudo yum install -y gcc make autoconf libtool bison bzip2 gzip tar unzip libxml2 libxml2-dev libxslt libxslt-dev openssl openssl-dev
安装PHP依赖
PHP有许多扩展,安装PHP源码前需要安装一些依赖库,以下命令可以安装常用的PHP扩展依赖:
sudo yum install -y libmcrypt libmcrypt-dev mcrypt libmysqlclient-dev libxml2 libxml2-dev libxslt libxslt-dev openssl openssl-dev
下载PHP源码
从PHP官方网站下载最新的PHP源码包,以下命令使用wget下载PHP源码:
wget https://www.php.net/distributions/php-7.4.30.tar.gz
解压下载的源码包:
tar -xzf php-7.4.30.tar.gz
进入源码目录:
cd php-7.4.30
配置PHP安装选项
使用以下命令开始配置PHP安装:

./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/usr/local/php/etc --with-mysql=/usr --with-pdo-mysql=/usr --with-mysqli=/usr/bin/mysql_config --enable-mbstring --enable-zip --enable-bcmath --enable-soap --enable-xml --enable-ftp --enable-opcache
这里是一些配置选项的解释:
--prefix=/usr/local/php:指定PHP安装的目录。--enable-fpm:启用FastCGI进程管理器。--with-fpm-user=www:指定FPM运行的用户。--with-fpm-group=www:指定FPM运行的组。--with-config-file-path=/usr/local/php/etc:指定PHP配置文件的目录。--with-mysql=/usr:指定MySQL的安装目录。--with-pdo-mysql=/usr:指定PDO_MySQL的安装目录。--with-mysqli=/usr/bin/mysql_config:指定MySQLi的安装目录。--enable-mbstring:启用多字节字符串支持。--enable-zip:启用ZIP文件支持。--enable-bcmath:启用BC数学扩展。--enable-soap:启用SOAP扩展。--enable-xml:启用XML扩展。--enable-ftp:启用FTP扩展。--enable-opcache:启用OPcache。
编译和安装PHP
编译PHP:
make
安装PHP:
sudo make install
配置PHP-FPM
进入PHP安装目录,复制FPM配置文件:
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
编辑php-fpm.conf文件,根据需要修改配置,
[global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log
启动PHP-FPM:

sudo /usr/local/php/sbin/php-fpm
验证安装
在Web服务器(如Apache或Nginx)中配置PHP模块,并在Web根目录下创建一个包含<?php phpinfo(); ?>的文件,访问该文件,如果看到PHP信息页面,则表示PHP安装成功。
FAQs
Q1:为什么我配置PHP时遇到错误“configure: error: Cannot find libxml2 headers”?
A1: 这通常是因为libxml2库没有正确安装或其开发文件没有安装,确保您已经安装了libxml2和libxml2-dev:
sudo yum install -y libxml2 libxml2-dev
Q2:PHP-FPM无法启动,错误信息是“[error] cannot open stream: No such file or directory”?
A2: 这可能是由于FPM配置文件中的路径错误或文件权限问题,请检查php-fpm.conf文件中的error_log和pid路径是否正确,并确保这些文件和目录可由FPM进程访问,您可能需要更改文件权限:
sudo chown www:www /usr/local/php/var/run/php-fpm.pid sudo chown www:www /usr/local/php/var/log/php-fpm.log
