在 CentOS 上编译 PHP 是一个涉及多个步骤和依赖项的过程,以下是一个详细的指南,包括安装必要的依赖项、下载 PHP 源码、配置编译选项以及最终的编译和安装过程。
准备工作
更新系统

确保你的系统是最新的,打开终端并运行以下命令:
- sudo yum update y
安装开发工具和依赖项
编译 PHP 需要一些开发工具和库,使用以下命令安装这些依赖项:
- sudo yum groupinstall "Development Tools" y
- sudo yum install libxml2devel bzip2devel curldevel libmcryptdevel gddevel libjpegdevel libpngdevel freetypedevel ldapdevel openldapdevel y
下载 PHP 源码
访问 [PHP 官方网站](https://www.php.net/downloads) 下载你需要的 PHP 版本源码包,下载 PHP 7.4.16 的源码包:
- cd /usr/local/src
- sudo wget https://www.php.net/distributions/php7.4.16.tar.gz
- sudo tar xzvf php7.4.16.tar.gz
- cd php7.4.16
配置编译选项
在配置编译选项时,你可以根据需要启用或禁用特定的 PHP 扩展,要启用 MySQL 支持,可以使用以下命令:
- ./configure prefix=/usr/local/php \
- withconfigfilepath=/usr/local/php/etc \
- enablembstring \
- enablembregex \
- withcurl \
- withopenssl \
- withzlib \
- enablebcmath \
- withbz2 \
- enablesoap \
- withgettext \
- withgd \
- enablegdnativettf \
- withjpegdir \
- withfreetypedir \
- withpngdir \
- enablepcntl \
- enablesockets \
- withmysqli=shared,builtin \
- withpdomysql=shared,builtin \
- withmysqlsock=/var/lib/mysql/mysql.sock
编译和安装
运行以下命令编译并安装 PHP:

- make
- sudo make install
配置 PHP
将配置文件模板复制到安装目录,并根据需要进行修改:
- sudo cp php.iniproduction /usr/local/php/etc/php.ini
- sudo nano /usr/local/php/etc/php.ini
你可以在php.ini
文件中进行各种配置,例如设置upload_max_filesize
或memory_limit
等。
设置环境变量
为了使系统能够找到 PHP 可执行文件,需要将 PHP 的安装路径添加到环境变量中,编辑~/.bashrc
文件并添加以下行:
- export PATH="/usr/local/php/bin:$PATH"
使更改生效:
- source ~/.bashrc
验证安装
验证 PHP 是否成功安装并工作正常:
- php v
你应该看到类似于以下的输出:
- PHP 7.4.16 (cli) (built: Mar 10 2021 10:10:10) ( NTS )
- Copyright (c) The PHP Group
- Zend Engine v3.4.0, Copyright (c) Zend Technologies
相关问答 FAQs
Q1: 如何更改 PHP 的配置?
A1: 你可以通过编辑php.ini
文件来更改 PHP 的配置,该文件通常位于 PHP 安装目录的etc
子目录中,例如/usr/local/php/etc/php.ini
,你可以使用文本编辑器(如nano
或vim
)打开该文件并进行所需的更改,更改完成后,保存文件并重新启动 Web 服务器(如 apache 或 Nginx)以使更改生效。
Q2: 如何安装额外的 PHP 扩展?
A2: 你可以使用pecl
或pear
命令来安装额外的 PHP 扩展,要安装redis
扩展,你可以运行以下命令:
- sudo /usr/local/php/bin/pecl install redis
安装完成后,你需要将扩展添加到php.ini
文件中,编辑php.ini
文件并添加以下行:
- extension=redis.so
重新启动 Web 服务器以使更改生效。