前言

本文将介绍如何在CentOS 7.9上编译安装PHP 7.4.33。通过在CentOS上手动编译和安装PHP,您将可以根据自己的需求进行自定义配置,并获得更高的性能和灵活性。


一、7.4.33安装流程

1.基本工具软件安装

yum update -y
yum install epel-release -y
yum groupinstall "Development Tools" -y
yum install wget curl git -y

2.安装PHP编译所需的依赖项

yum install -y libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel libcurl-devel libxslt-devel sqlite-devel libzip-devel

3.下载php源代码

进入软件安装目录,下载php源码包

cd /soft
wget https://www.php.net/distributions/php-7.4.33.tar.gz

4.解压php源码,配置编译选项

解压php源码包,解压后进入源码包查看解压后文件

tar -xzf php-7.4.33.tar.gz
#进入解压目录
cd php-7.4.33
# 配置编译选项
./configure --prefix=/soft/php_7_4_33 --with-openssl --with-libxml --with-bz2 --with-png --with-jpeg --enable-gd --with-curl --enable-mbstring --disable-mbregex --enable-xml --enable-zip --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data
# 创建php-fpm用户组
useradd www-data
groupadd www-data
usermod -G www-data  www-data

解压后的源码包目录

5. 编译安装

make && make install

6.修改环境变量,配置文件

  # 创建当前安装目录的软连接,便于升级
  ln -s  /soft/php_7_4_33  /soft/php_cmd
  # 编辑 /etc/profile,配置环境变量
  export PHP_CMD=/soft/php_cmd
  export PATH=.:$PATH:$PHP_CMD/bin:$PHP_CMD/sbin
  # 重新加载环境变量
  source /etc/profile
  #约定配置文件启动目录
  /soft/php_cmd/sbin/php-fpm
	/soft/php_cmd/etc/php-fpm.conf
	/soft/php_cmd/etc/php.ini
	# 从解压源码包中拷贝配置文件
	cp /soft/php-7.4.33/php.ini-development /soft/php_7_4_33 /lib/php.ini
  cp /soft/php-7.4.33/sapi/fpm/php-fpm.conf /soft/php_7_4_33 /etc/php-fpm.conf
  cd /soft/php_cmd/etc/php-fpm.d && cp www.conf.default  www.conf
  #设置系统开机自启
  cp /soft/php-7.4.33/sapi/fpm/php-fpm.service /etc/systemd/system/php-fpm.service
  # 启动php-fpm
  systemctl start php-fpm
  #重启
  systemctl restart php-fpm
  # 启用
  systemctl enable php-fpm
  #禁用
  systemctl disable php-fpm

7.启动php-fpm

# php-fpm指定配置文件启动
php-fpm -c /soft/php_cmd/etc/php.ini  -y /soft/php_cmd/etc/php-fpm.conf

注意:

  1. php-fpm默认加载位置 /soft/php_7_4_33/lib
  2. php cmd默认指定的php.ini 文件位置也在/soft/php_7_4_33/lib下
    php-cli默认指定的配置文件

8. 是否成功安装

[root@iZbp1a6rq18exzu6f75ghgZ ext]# 
[root@iZbp1a6rq18exzu6f75ghgZ ext]# php -v
PHP 7.4.33 (cli) (built: Nov  4 2023 13:16:11) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

二、安装流程常见异常解决

1. No package ‘oniguruma’ found

oniguruma是一个处理正则表达式的库,在编译安装php时,如果使用–enable-mbstring 参数, 开启mbstring扩展,则会出现这个错误。原因:mbstring的正则功能需要oniguruma的支持,系统中却没有oniguruma库。

解决方法1

# 安装oniguruma库
# 安装依赖
yum install autoconf automake libtool -y
#下载源码
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz 
#解压
tar xf oniguruma-6.9.4.tar.gz
# 编译安装
cd oniguruma-6.9.4/
./autogen.sh && ./configure --prefix=/usr --libdir=/lib64
make && make install

方法2
在’–enable-mbstring’参数后添加’–disable-mbregex’参数,意为不使用mbstring的正则功能,不再需要oniguruma库。

2. 报错 invalid ‘asm’: invalid operand prefix ‘%c

报错如下:
编译报错解决方式

修改Zend/zend_operators.h文件中ZEND_USE_ASM_ARITHMETIC 值均为0即可

# define ZEND_USE_ASM_ARITHMETIC 1
#else
# define ZEND_USE_ASM_ARITHMETIC 0
#endif

3. 报错 configure: WARNING: unrecognized options: --with-png, --enable-zip

解决方式

使用命令 ./configure --help | grep png 查看当前版本支持写法


三、源码包中常见扩展安装

1. 源码包中常见扩展pcntl安装

# 进入源码包扩展目录中,运行一下命令
[root@iZbp1a6rq18exzu6f75ghgZ ext]# cd /soft/php-7.4.33/ext
[root@iZbp1a6rq18exzu6f75ghgZ ext]# ls
[root@iZbp1a6rq18exzu6f75ghgZ ext]# cd pcntl/
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]# phpize 
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]./configure --with-php-config=/soft/php_cmd/bin/php-config
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]make && make install
#修改php.ini配置
extension=pcntl
# 查看是否安装成功
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]# php -mi | grep pc
pcntl
pcre

2. 源码包中常见扩展opcache安装

# 进入源码包扩展目录中,运行一下命令
[root@iZbp1a6rq18exzu6f75ghgZ ext]# /soft/php-7.4.33/ext/opcache
[root@iZbp1a6rq18exzu6f75ghgZ ext]# ls
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]# phpize 
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]./configure --with-php-config=/soft/php_cmd/bin/php-config
[root@iZbp1a6rq18exzu6f75ghgZ pcntl]make && make install
#修改php.ini配置
zend_extension=opcache
# 查看是否安装成功
[root@iZbp1a6rq18exzu6f75ghgZ opcache]# php -mi | grep Zend
Zend OPcache
[Zend Modules]
Zend OPcache

OPcache安装

总结

以上就是php7.4.33安装流程,以及源码包中常见扩展安装流程,以上异常错误仅代表作者环境出现的异常,读者环境不一样,出现的编译异常也不一样,以上流程仅供参考。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐