HCRM博客

如何在CentOS上编译PHP?

CentOS上编译PHP的详细步骤

在CentOS系统上,通过源代码编译安装PHP可以确保你使用的是最新版本,并且可以根据需要定制功能和优化性能,以下内容将详细介绍如何在CentOS 7和CentOS 8上编译并安装PHP,包括必要的依赖安装、配置选项、编译过程以及常见问题的解决方法。

如何在CentOS上编译PHP?-图1
(图片来源网络,侵权删除)

准备工作

1、更新系统软件包:在开始之前,建议先更新系统的软件包,以确保安装的是最新的版本。

sudo yum update y   # 对于CentOS 7
sudo dnf update y    # 对于CentOS 8

2、安装编译工具和依赖:编译PHP需要一些基础的开发工具和库,以下是常用的依赖项:

sudo yum groupinstall 'Development Tools' y   # 对于CentOS 7
sudo dnf groupinstall 'Development Tools' y    # 对于CentOS 8

3、安装其他依赖包:根据你计划使用的PHP扩展,可能还需要安装额外的库。

sudo yum install y \
    libxml2 libxml2devel \
    openssl openssldevel \
    bzip2 bzip2devel \
    libcurl libcurldevel \
    libjpeg libjpegdevel \
    libpng libpngdevel \
    freetype freetypedevel \
    gmp gmpdevel \
    libmcrypt libmcryptdevel \
    readline readlinedevel \
    libxslt libxsltdevel \
    zlib zlibdevel \
    glibc glibcdevel \
    glib2 glib2devel \
    ncurses ncursesdevel \
    curl \
    gdbmdevel \
    db4devel \
    libXpmdevel \
    libX11devel \
    gddevel \
    gmpdevel \
    expatdevel \
    xmlrpcc xmlrpccdevel \
    libicudevel \
    libmcryptdevel \
    libmemcacheddevel \
    epelrelease

下载和解压PHP源码

1、下载PHP源码:从PHP官方网站下载你需要的版本,下载PHP 8.1.9:

wget https://www.php.net/distributions/php8.1.9.tar.gz

2、解压源码包

tar zxvf php8.1.9.tar.gz
cd php8.1.9

配置和编译PHP

1、配置编译选项:运行./configure脚本来配置PHP,你可以使用help选项查看所有可用的配置选项,以下是一些常用的配置选项:

如何在CentOS上编译PHP?-图2
(图片来源网络,侵权删除)
./configure \
    prefix=/usr/local/php \
    withconfigfilepath=/etc \
    withfpmuser=www \
    withfpmgroup=www \
    withcurl \
    withfreetypedir \
    enablegd \
    withgettext \
    withiconvdir \
    withkerberos \
    withlibdir=lib64 \
    withlibxmldir \
    withmysqli \
    withopenssl \
    withpcreregex \
    withpdomysql \
    withpdosqlite \
    withpear \
    withpngdir \
    withjpegdir \
    withxmlrpc \
    withxsl \
    withzlib \
    withbz2 \
    withmhash \
    enablefpm \
    enablebcmath \
    enablelibxml \
    enableinlineoptimization \
    enablembregex \
    enablembstring \
    enableopcache \
    enablepcntl \
    enableshmop \
    enablesoap \
    enablesockets \
    enablesysvsem \
    enablesysvshm \
    enablexml \
    enablezip \
    enablefpm

2、编译和安装:运行makemake install命令来编译和安装PHP。

make
sudo make install

配置环境变量和启动FPM

1、配置环境变量:将PHP的可执行文件路径添加到系统的PATH环境变量中,编辑/etc/profile文件,添加以下内容:

export PATH=$PATH:/usr/local/php/bin

然后运行以下命令使更改生效:

source /etc/profile

2、配置php.ini:将默认的配置文件复制到合适的位置,并进行必要的修改。

sudo cp /usr/local/php/php.iniproduction /etc/php.ini

3、启动FPM:如果你启用了FPM,可以通过以下命令启动它:

sudo /usr/local/php/sbin/phpfpm daemonize

常见问题及解决方法

1、缺少依赖库:在编译过程中,如果遇到缺少某个库的错误,可以根据错误提示安装相应的开发包,如果缺少libzip库,可以执行以下命令:

如何在CentOS上编译PHP?-图3
(图片来源网络,侵权删除)
sudo yum remove y libzip     # 先删除旧版本
wget https://nih.at/libzip/libzip1.2.0.tar.gz # 下载新版libzip源码
tar zxvf libzip1.2.0.tar.gz                  # 解压源码包
cd libzip1.2.0                                 # 进入目录
./configure                                    # 配置
make && make install                            # 编译安装

2、动态链接库问题:如果在编译时出现与动态链接库相关的问题,可以尝试更新/etc/ld.so.conf文件,添加相关的路径,然后运行ldconfig命令更新配置。

echo '/usr/local/lib64' | sudo tee a /etc/ld.so.conf
echo '/usr/local/lib' | sudo tee a /etc/ld.so.conf
sudo ldconfig v

FAQs(相关问答)

1、Q1: 如何确认PHP是否正确安装?:可以通过运行php v命令来查看PHP的版本信息,如果显示出正确的版本号,则说明安装成功,还可以创建一个包含<?php phpinfo(); ?>的PHP文件,并在浏览器中访问该文件,查看PHP的信息页面以确认安装情况。

2、Q2: 编译PHP时报错“checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11”如何解决?:这个错误表示系统中的libzip库版本过低,需要升级到至少0.11版本,首先删除旧版本的libzip库,然后下载、编译并安装新版本的libzip库,具体步骤如下:

sudo yum remove y libzip     # 删除旧版本
wget https://nih.at/libzip/libzip1.2.0.tar.gz # 下载新版libzip源码
tar zxvf libzip1.2.0.tar.gz                  # 解压源码包
cd libzip1.2.0                                 # 进入目录
./configure                                    # 配置
make && make install                            # 编译安装
分享:
扫描分享到社交APP
上一篇
下一篇