源码安装php7.4.33,支持hyperf2.2
概述
由于php7.4.0-7.4.1与hyperf/amqp2.2版本有冲突,导致必须升级php版本,使用php源码安装
服务器已经包含了其他版本的php,所以需要兼容处理
必须安装的扩展
- pcntl
- swoole
安装
下载源码
php官方网站找到下载版本对应的下载链接 : https://www.php.net/downloads
wget https://www.php.net/distributions/php-7.4.33.tar.gz
源码解压
解压到当前的下载目录
tar -zxvf php-7.4.33.tar.gz
配置php路径及需要的扩展
./configure --prefix=/www/wdlinux/php7.4.33 --with-config-file-path=/www/wdlinux/php7.4.33/etc --enable-bcmath --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-pdo --with-mysqli=mysqlnd --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mhash --with-openssl --enable-bcmath --enable-soap --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --with-libxml -enable-gd --enable-xml --with-gd --enable-mbregex --enable-ftp --with-xmlrpc --with-zip --without-pear --enable-session --with-jpeg --with-freetype
这一步一般会提示有一些依赖没有安装
比如下图:
先安装提示中的依赖
yum -y install readline-devel
比较全的依赖安装
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip libzip-devel
继续执行./configure命令
makemake install
查看php安装的扩展
../php7.4.33/bin/php -m
php.ini
将源码包中的配置文件复制到安装目录etc下的php.ini
cp php.ini-development /www/wdlinux/php7.4.33/etc/php.inicp /www/wdlinux/php7.4.33/etc/php-fpm.conf.default /www/wdlinux/php7.4.33/etc/php-fpm.confcp /www/wdlinux/php7.4.33/etc/php-fpm.d/www.conf.default /www/wdlinux/php7.4.33/etc/php-fpm.d/www.conf
源码安装redis扩展
php扩展大本营↓
https://pecl.php.net/
下载redis扩展包源码,到php的扩展目录
搜索redis,点击结果进入详情有对应的redis扩展的源码地址
#在php源码的ext目录下下载git clone https://github.com/phpredis/phpredis.git
进入redis源码目录,运行phpize
cd phpredis/www/wdlinux/php7.4.33/bin/phpize./configure --with-php-config=/www/wdlinux/php7.4.33/bin/php-configmakemake install
安装成功之后会显示扩展的存放目录
修改php.ini开启redis
vi /www/wdlinux/php7.4.33/etc/php.ini
源码安装swoole扩展
源码下载
wget https://github.com/swoole/swoole-src/archive/refs/tags/v4.8.10.tar.gz
phpize命令执行
tar -zxvf v4.8.10.tar.gzcd swoole-src-4.8.10//www/wdlinux/php7.4.33/bin/phpize ./configure --with-php-config=/www/wdlinux/php7.4.33/bin/php-config make && make install
修改php.ini配置
vi /www/wdlinux/php7.4.33/etc/php.ini添加一句extension=swoole
在hypef升级2.2过程中还遇到了amqp一直报错的问题,排除链接错误问题之后,固定了hyperf/amqp
的版本为3.1.0
问题解决:
you must configure with `--enable-openssl` to support ssl connection when compiling Swoole
解决方法,重新按照上面方式重装的swoole.这是因为在编译安装的时候未开启openssl
来源地址:https://blog.csdn.net/bafeiyu2523696101/article/details/127841458