引言

PHP是一种流行的开源服务器端脚本语言,用于开发动态网站和应用程序。在CentOS上编译安装PHP,可以让我们更深入地了解其工作原理,并根据自己的需求定制安装。本文将详细介绍在CentOS上编译安装PHP的步骤。

准备工作

在开始编译安装PHP之前,请确保您的系统满足以下要求:

  • CentOS操作系统
  • 开发工具包,包括gcc、make、autoconf等
  • 编译PHP所需的依赖库,如libxml2、libzip、openssl等

安装依赖库

首先,我们需要安装编译PHP所需的依赖库。以下是在CentOS上安装这些依赖库的示例命令:

sudo yum install -y gcc make autoconf libtool bison patch gzip
sudo yum install -y libxml2 libxml2-devel zlib zlib-devel openssl openssl-devel
sudo yum install -y bzip2 bzip2-devel libmcrypt libmcrypt-devel
sudo yum install -y mhash mhash-devel

下载PHP源代码

接下来,从PHP官方网站下载最新的PHP源代码:

cd /usr/src
sudo wget https://www.php.net/distributions/php-7.4.33.tar.gz
sudo tar -xzf php-7.4.33.tar.gz
cd php-7.4.33

配置PHP

在配置PHP之前,请确保您已经安装了所有必需的依赖库。然后,使用以下命令配置PHP:

./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www \
            --with-mysql --with-mysqli --with-pdo-mysql --with-openssl \
            --with-zlib --with-bz2 --with-gd --with-curl --enable-gd-native-ttf \
            --with-pear --enable-zip --enable-fileinfo --enable-bcmath

这里是一些配置选项的解释:

  • --prefix=/usr/local/php:指定PHP安装的目录
  • --enable-fpm:启用PHP-FPM(FastCGI Process Manager)
  • --with-fpm-user=www:指定PHP-FPM运行的用户
  • --with-fpm-group=www:指定PHP-FPM运行的用户组
  • --with-mysql--with-mysqli--with-pdo-mysql:启用MySQL支持
  • --with-openssl:启用OpenSSL支持
  • --with-zlib--with-bz2:启用zlib和bzip2支持
  • --with-gd:启用GD库支持
  • --with-curl:启用cURL支持
  • --enable-gd-native-ttf:启用GD库支持TrueType字体
  • --with-pear:启用Pear(PHP扩展与应用库仓库)支持
  • --enable-zip:启用ZIP库支持
  • --enable-fileinfo:启用文件信息扩展支持
  • --enable-bcmath:启用BC数学库支持

编译和安装PHP

配置完成后,使用以下命令编译和安装PHP:

sudo make
sudo make install

这将编译PHP并安装到指定的目录中。

创建PHP-FPM配置文件

PHP-FPM需要配置文件才能正确运行。创建一个名为www.conf的配置文件:

sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo vim /usr/local/php/etc/php-fpm.conf

在配置文件中,修改以下参数:

  • user:设置为www
  • group:设置为www
  • listen:设置为/run/php-fpm/www.sock
  • pm:设置为dynamic
  • pm.max_children:根据需要设置最大进程数
  • pm.start_servers:设置为min的值
  • pm.min_spare_servers:设置为min的值
  • pm.max_spare_servers:设置为max的值

启动PHP-FPM

现在,您可以启动PHP-FPM服务:

sudo /usr/local/php/sbin/php-fpm

如果需要以守护进程方式运行,可以使用以下命令:

sudo systemctl start php-fpm

验证安装

最后,创建一个简单的PHP脚本,用于验证PHP安装是否成功:

<?php
phpinfo();
?>

将此脚本保存为info.php,放置在Web服务器(如Nginx或Apache)的根目录下。在浏览器中访问该脚本,如果看到PHP信息页面,则表示PHP安装成功。

总结

通过以上步骤,您已经在CentOS上成功编译并安装了PHP。接下来,您可以继续配置Web服务器、数据库和其他扩展,以便运行PHP应用程序。