当前位置:网站首页>统信UOS卸载php7.2.24,安装php7.4.27 ;卸载再安装为PHP 7.2.34

统信UOS卸载php7.2.24,安装php7.4.27 ;卸载再安装为PHP 7.2.34

2022-04-23 14:09:00 Nightwish5

文章背景

统信UOS(arm64) 、 由于漏扫,上次安装php7.2.24并不能满足要求,现在将其升级到php7.4.27
本文记录一些资源来源网站、碰到的坑以及处理方法。
修改前系统做好快照

文中资源来源网址:

php7.4 arm64 deb包: http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.4/
php7.2 arm64 deb包: http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.2/

金仓与PHP的驱动接口文件:https://www.kingbase.com.cn/index/download/c_id/401.htm

安装PHP所需的依赖包:
php-common的deb包: http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php-defaults/
libpcre2的deb包: http://ftp.de.debian.org/debian/pool/main/p/pcre2/libpcre2-8-0_10.39-3_arm64.deb
libonig4的deb包:http://ports.ubuntu.com/pool/universe/libo/libonig/libonig4_6.7.0-1_arm64.deb
libpcre3的deb包:https://packages.sury.org/php/pool/main/p/pcre3/

在这里插入图片描述

一、卸载php7.2

#查看已安装的php ,然后复制粘贴卸载即可。 最好执行几次。
 apt-cache search php7.2  | awk '{print $1}' | xargs -i echo "apt-get remove --purge {}"

问题一 apt-get remove报错

卸载apt-get remove --purge php7.2-fpm出现 E:有未能满足的依赖关系。i请尝试不指件包的名字来运行。
答:使用 apt --fix-broken install 来修复
在这里插入图片描述

问题二 dpkg安装时出现依赖关系问题 php-common 1:81

由图中信息可知,当安装php7-4-common的时候,他需要依赖php-common >=1.81的版本,而系统中存在 php-common 1:60ubuntu1的版本。
在这里插入图片描述
答:为了符合他的要求,要卸载这个php-common 1:60ubuntu1,安装一个他要求的php-common版本

dpkg -l | grep php  来查询已经安装的php版本 。 继续卸载!

apt-get remove --purge -y php-common
apt-get remove --purge -y libapache2-mod-php7.3
apt-get remove --purge -y php7.3-cli
apt-get remove --purge -y php7.3-common
apt-get remove --purge -y php7.3-json
apt-get remove --purge -y php7.3-opcache
apt-get remove --purge -y php7.3-readline

dpkg -i php-common_92+ubuntu18.04.1+deb.sury.org+2_all.deb

在这里插入图片描述

问题三 安装php7.4-cli需要依赖libpcre2-8-0 (>= 10.38)

在这里插入图片描述
**答:**下载安装:libpcre2-8-0_10.39-3_arm64.deb

问题四 安装php7.4-mbstring需要依赖 libonig4 (>= 5.9.5)

在这里插入图片描述
**答:**下载安装 libonig4_6.7.0-1_arm64.deb

小结:上面几个问题根据提示,从网上找到对应的依赖包,下载安装后就能解决依赖问题。

问题五 /lib/aarch64-linux-gnu/libcrypto.so.1.1:version ‘OPENSSL_1.0.0’ no found

(注意) 别轻易替换 /lib/aarch64-linux-gnu/ 或者 /lib/x86_x64-linux-gnu下的so文件!!!

在这里插入图片描述
这个PHP7.4与金仓对接配置,问题在x86架构情况是可以按照博客来处理:https://zhuanlan.zhihu.com/p/410412408 《找不到libssl.so.10的终极解决方案 – Ubuntu 18》

简单来说就是编译OpenSSL,然后复制粘贴编译生成的文件libssl.so.1.0.0和libcrypto.so.1.0.0到/lib/x86_64-linux-gnu,再创建软链接。

下载老版本OpenSSL

wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz
tar -zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config shared zlib-dynamic
make
# 这一步会出现找不到zlib.h的幺蛾子。如果出现类似错误,请先sudo apt-get install libz-dev
# 不出意外的话这时候目录里应该出现libssl.so.1.0.0和libcrypto.so.1.0.0
cp libssl.so.1.0.0 libcrypto.so.1.0.0 /lib/x86_64-linux-gnu
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

在这里插入图片描述
但是在arm64(aarch64)上使用这个方法的话,cp 后系统的ssh服务直接挂了
(通过VNC连上去,卸载重装openssl 、openssh也不行,恢复方法未知,未摸索出来。)

但aarch64架构的 请慎用。 可能是编译方法错误了
https://www.cnblogs.com/wen123456/p/14046666.html  《openssl移植到aarch64 Linux》
cp   libssl.so.1.0.0 libcrypto.so.1.0.0   /lib/aarch64-linux-gnu

在这里插入图片描述

既然php7.4寄了,在找deb包的过程中,也找到了 php7.2.34 deb 。那此时换成php7.2.34吧~

问题六 安装时依赖于 libpcre3 (>= 2:8.41)

在这里插入图片描述

可先尝试 ,更新下看看版本是不是会高
apt-get update
apt show libpcre3
apt-get install libpcre3

访问 https://packages.sury.org/php/pool/main/p/pcre3/    , 网页查看源代码  可以看到全名。
安装 libpcre3_8.41-1+0_20181207195800.1+stretch_1.gbp97d153_arm64.deb

参考来源:https://stackoverflow.com/questions/61787420/closed-error-on-apt-get-update-sury-org-linux

小结:通过本次的漏扫,算是初步了解安装/卸载deb包 ,学会找出依赖包的来源。。。。

版权声明
本文为[Nightwish5]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Nightwish5/article/details/122951997