php 之 源码包编译安装
本文将介绍如何在CentOS 7.9上编译安装PHP 7.4.33。通过在CentOS上手动编译和安装PHP,您将可以根据自己的需求进行自定义配置,并获得更高的性能和灵活性。以上就是php7.4.33安装流程,以及源码包中常见扩展安装流程,以上异常错误仅代表作者环境出现的异常,读者环境不一样,出现的编译异常也不一样,以上流程仅供参考。
前言
本文将介绍如何在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
注意:
- php-fpm默认加载位置 /soft/php_7_4_33/lib
- php cmd默认指定的php.ini 文件位置也在/soft/php_7_4_33/lib下
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
总结
以上就是php7.4.33安装流程,以及源码包中常见扩展安装流程,以上异常错误仅代表作者环境出现的异常,读者环境不一样,出现的编译异常也不一样,以上流程仅供参考。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)