Centos编译安装PHP7.4记录

发布于 2021-03-22  18 次阅读


前言

操作备忘,仅作参考,如有错误,概不负责
 


0x01 前期工作

安装依赖包,下载必要文件

#安装必要的依赖
dnf install -y gcc-c++ autoconf make libpng.x86_64 freetype.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 openssl-devel openssl libxml2-devel libxml2
 
#预先下载好必要的源码包(有几个软件包在我编译的时候软件源里还没有,故自行编译安装)
wget https://www.php.net/distributions/php-7.4.16.tar.gz
wget https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz
wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz
wget https://github.com/kkos/oniguruma/releases/download/v6.9.6/onig-6.9.6.tar.gz
 
#解压各个源码包。
tar -zxvf [包名]

0x02 编译依赖

编译安装其他所需依赖包

#编译参数仅供参考,请根据实际需求自行修改
#编译三部曲configure --- make --- make install
#libjpeg编译参数
./configure --prefix=/usr/local/libjpeg/9d --enable-shared
 
#gmp编译参数
./configure --prefix=/usr/local/gmp/621 --enable-shared
 
#noniguruma编译参数
./configure --prefix=/usr

0x03 编译PHP

确认依赖库都安装完成无报错后再进行下一步

#PHP编译参数;仅供参考,请根据实际情况自行修改
./configure --prefix=/usr/local/php/741/ \
--with-config-file-path=/usr/local/php/741/etc/ \
--with-config-file-scan-dir=/usr/local/php/741/etc/php.d/ \
--enable-gd \
--enable-dba \
--enable-fpm \
--enable-dom \
--enable-pdo \
--enable-exif \
--enable-intl \
--enable-soap \
--enable-pcntl \
--enable-shmop \
--enable-bcmath \
--enable-filter \
--enable-session \
--enable-sockets \
--enable-calendar \
--enable-mbstring \
--enable-simplexml \
--disable-fileinfo \
--with-bz2 \
--with-cdb \
--with-curl \
--with-pear \
--with-zlib \
--with-mhash \
--with-iconv \
--with-mysqli \
--with-openssl \
--with-pcre-jit \
--with-pdo-mysql \
--with-mysql-sock \
--with-openssl-dir \
--with-jpeg=/usr/local/libjpeg/9d/include \
--with-gmp=/usr/local/gmp/621

0x04 完成安装

安装完成后需要手动创建软连接方可开始使用

#创建软连接,以开始使用php
ln -sf /usr/local/php/php741/bin/php /usr/local/bin/php7
ln -sf /usr/local/php/php741/bin/pear /usr/local/bin/pear7
ln -sf /usr/local/php/php741/bin/peardev /usr/local/bin/peardev7
ln -sf /usr/local/php/php741/bin/pecl /usr/local/bin/pecl7
ln -sf /usr/local/php/php741/bin/php-cgi /usr/local/bin/php-cgi7
ln -sf /usr/local/php/php741/bin/php-config /usr/local/bin/php-config7
ln -sf /usr/local/php/php741/bin/phpdbg /usr/local/bin/phpdbg7
ln -sf /usr/local/php/php741/bin/phpize /usr/local/bin/phpize7
 
#复制必要的配置文件
cp /usr/local/php/741/etc/php-fpm.d/www.conf.default /usr/local/php/741/etc/php-fpm.d/www.conf
cp [编译完成后的源码包目录]/php.ini-development /usr/local/php/741/php.ini
cp [编译完成后的源码包目录]/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm7
chmod +x /etc/init.d/php-fpm7

0x05 开始使用

启动php-fpm服务,使其可被其他web前端调用。

#启动PHP
systemctl start php-fpm7
#配置开机自动启动
chkconfig php-fpm7 on
#如果你想多个版本PHP共存,请下载其他版本的源码包后更改编译参数里的--prefix=值,更改为不同目录即可,同时,链接的二进制文件和init启动文件也更改为其他名称,另需配置不同版本的PHP监听端口即可。
 
#更改PHP监听端口
nano /usr/local/php/741/etc/php-fpm.d/www.conf
#找到如下参数
listen = 127.0.0.1:9000
 
#更改PHP运行的用户
user = www
group = www
listen.owner = www
listen.group = www

后记

PHP自带一个可以查看当前运行的PHP服务详细信息的函数,可以使用这个函数查看各种详细信息

//新建一个info.php文件,放在web服务root目录下,访问这个文件即可
<?php
phpinfo();
?>