HCRM博客

如何在 CentOS 系统中编译并安装 PHP?

在CentOS上编译安装PHP是一个相对复杂的过程,需要多个步骤来确保正确安装和配置,本文将详细介绍如何在CentOS 7上从源代码编译并安装PHP 8.1,包括必要的依赖安装、编译选项以及如何配置Nginx以支持PHP应用。

编译安装PHP

1. 依赖环境

如何在 CentOS 系统中编译并安装 PHP?-图1
(图片来源网络,侵权删除)

在开始编译PHP之前,首先需要安装一些必需的依赖包,这些依赖包包括C编译器(如GCC)、Make工具、以及其他一些库文件,具体命令如下:

yum y install gcc gccc++ make wget libxml2devel openssldevel curldevel \
    libjpegdevel libpngdevel freetypedevel bison autoconf automake libtool cmake zlibdevel pcredevel gd gddevel

2. 下载并解压

需要从PHP官网下载最新的PHP源码包,并将其解压到指定目录中,这里以PHP 8.1.0为例:

cd /usr/local/src
wget https://www.php.net/distributions/php8.1.0.tar.gz
tar zxvf php8.1.0.tar.gz
cd php8.1.0

3. 配置、编译安装

在解压后的目录下,使用./configure脚本来配置PHP的编译选项,可以根据实际需求调整以下配置选项:

./configure prefix=/usr/local/php8 \
            withconfigfilepath=/usr/local/php8 \
            enablefpm \
            withfpmuser=nginx \
            withfpmgroup=nginx \
            withmysqli \
            withpdomysql \
            withopenssl \
            withzlib \
            enablesockets \
            enablezip \
            withcurl \
            withgd \
            withjpegdir \
            withfreetypedir \
            enablembstring \
            withcurl \
            enableftp \
            withgettext \
            enablesession \
            withlibxmldir \
            withopenssl \
            withpcreregex \
            withzlib \
            enablesoap \
            enableopcache

配置完成后,使用make命令进行编译,然后使用make install命令进行安装:

如何在 CentOS 系统中编译并安装 PHP?-图2
(图片来源网络,侵权删除)
make
make install

4. 创建系统用户、系统用户组

为了安全起见,建议为PHP创建一个单独的用户和用户组:

groupadd php
useradd r g php s /sbin/nologin php

5. 创建链接

为了让系统能够找到新安装的PHP可执行文件,需要创建相应的软链接:

ln s /usr/local/php8/bin/php /usr/bin/php
ln s /usr/local/php8/sbin/phpfpm /usr/sbin/phpfpm

6. 自动启动PHPFPM

为了能够在系统启动时自动运行PHPFPM服务,需要创建一个systemd服务文件:

如何在 CentOS 系统中编译并安装 PHP?-图3
(图片来源网络,侵权删除)
vim /usr/lib/systemd/system/phpfpm.service

在文件中添加以下内容:

[Unit]
Description=PHPFPM Service
After=network.target
[Service]
Type=simple
PIDFile=/run/phpfpm/phpfpm.pid
ExecStart=/usr/sbin/phpfpm daemonize
ExecReload=/bin/kill USR2 $MAINPID
PrivateTmp=true
User=php
Group=php
[Install]
WantedBy=multiuser.target

保存文件后,使用以下命令启用并启动PHPFPM服务:

systemctl daemonreload
systemctl start phpfpm
systemctl enable phpfpm

7. 配置 Nginx 使其支持 PHP 应用

需要配置Nginx以支持PHP应用,编辑Nginx的默认站点配置文件:

vim /usr/local/nginx/conf/nginx.conf

server块中添加以下配置:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

保存文件后,重新加载Nginx配置以使更改生效:

/usr/local/nginx/sbin/nginx s reload

依赖安装

如果系统中已经安装了旧版本的PHP,建议先将其卸载以避免潜在的冲突:

yum remove y php

根据编译PHP时所需的依赖项,安装相应的扩展包,如果需要支持Redis扩展,可以执行以下命令:

pecl install redis
echo "extension=redis.so" > /usr/local/php8/etc/php.ini

FAQs(常见问题解答)

问题1:编译PHP时遇到缺少依赖库的错误怎么办?

答:如果在编译PHP过程中遇到缺少某个依赖库的错误提示,可以根据错误信息安装相应的依赖包,如果错误提示缺少libxml2库,可以执行yum install y libxml2devel来安装该依赖包,同样地,对于其他缺失的依赖库也可以采取类似的方法进行安装。

问题2:如何检查已安装的PHP版本?

答:可以通过在终端中输入php v命令来查看已安装的PHP版本信息,如果命令输出了PHP的版本号和其他相关信息,则说明PHP已成功安装并可以在系统中使用。

分享:
扫描分享到社交APP
上一篇
下一篇