引言

CentOS是一个流行的开源操作系统,它基于Red Hat Enterprise Linux(RHEL)。PHP是一种广泛使用的服务器端脚本语言,主要用于Web开发。本文将指导您在CentOS上从零开始编译安装PHP环境,包括所有必要的依赖库和扩展。

准备工作

在开始之前,请确保您的CentOS系统满足以下条件:

  • CentOS 7或更高版本
  • 根据需要安装所有依赖项

安装依赖项

PHP的编译和安装需要以下依赖项:

  1. GCC编译器:用于编译PHP代码。
  2. Make:用于构建PHP。
  3. Development Tools:提供构建PHP所需的一些工具。
  4. 库支持:如zlib、libxml2、libxslt、openssl等。

使用以下命令安装这些依赖项:

sudo yum -y install gcc make autoconf libtool bison re2c \
zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel \
libxslt libxslt-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel \
mysql mysql-devel gd gd-devel curl curl-devel \
openssl openssl-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel

下载PHP源码

访问PHP官方网站下载最新的PHP源码包:

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

配置PHP

在配置PHP之前,您可能需要安装一些额外的PHP扩展。以下是一个配置示例,它将安装所有扩展:

./configure --prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysql-includes=/usr/include/mysql \
--with-openssl \
--with-zlib \
--with-bz2 \
--with-gd \
--with-curl \
--with-pear \
--enable-xml \
--enable-dom \
--enable-simplexml \
--enable-xmlreader \
--enable-xmlwriter \
--enable-json \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-gettext \
--with-gmp \
--enable-intl \
--with-mhash \
--enable-pcntl \
--enable-rrd \
--enable-session \
--enable-opcache \
--enable-wddx \
--with-xsl \
--with-xslt

编译和安装PHP

使用以下命令编译和安装PHP:

make && sudo make install

配置PHP-FPM

PHP-FPM是PHP的FastCGI进程管理器,用于处理PHP请求。首先,创建PHP-FPM配置文件:

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

编辑/etc/php-fpm.conf文件,设置以下参数:

[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log

[www]
user = www
group = www
listen = /var/run/php-fpm.sock
listen_address = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 35

启动PHP-FPM服务:

sudo systemctl start php-fpm

将PHP-FPM服务设置为在启动时自动运行:

sudo systemctl enable php-fpm

创建Web目录和用户

创建一个Web目录和一个用户来运行Web服务:

sudo mkdir /var/www
sudo useradd -m -d /var/www -s /sbin/nologin www

测试PHP安装

创建一个名为index.php的文件到/var/www/html/目录:

<?php
phpinfo();
?>

结论

恭喜您,您现在已经在CentOS上成功编译和安装了PHP环境。您可以开始开发您的PHP应用程序了。记得经常更新您的PHP版本和依赖项,以确保安全性和性能。