Centos7 离线安装 php7
问题:因内部管控,机器无法连接公有yum源安装php。
正常安装php7可以参考CentOS7.2 安装 PHP7.2
下面的代码也是一种方法
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-mcrypt php72w-intl php72w-libapache2
正常网络下,上述两种方式都可安装成功,但内部管控,上面命令会出现
No package epel-release available.
epel-release = 7
epel-release >= 7 is needed by webtatic-release-7-3.noarch
更换其他源可能出现
"Peer's Certificate issuer is not recognized."
方案:离线下载rpm包,根据安装时的报错,安装相关开发包
上述正常安装的方案是让系统获取php7的安装源,以便通过yum安装,自动下载安装依赖包
步骤是 下载离线包->安装依赖环境->安装离线包。。全部的代码如下,再往下的是解决思路,可忽略
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-mcrypt php72w-intl php72w-libapache2 --downloadonly --downloaddir=.
yum install -y libmcrypt libmcrypt-devel mcrypt mhash
yum install -y libicu libargon2 openssl libcrypto
# 进入离线包的目录
cd ./tmp_rpms
rpm -Uvh *.rpm
#启动并运行php-fpm服务
systemctl enable php-fpm.service
systemctl restart php-fpm
思路和实际调试步骤
1.首先在可以正常安装php的机器中下载rpm包,
- 需要注意的是两个系统版本要一致,比如centos7,或者都是x86-64
- 运行命令,其实就是在原命令末增加 --downloadonly --downloaddir=.
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-mcrypt php72w-intl php72w-libapache2 --downloadonly --downloaddir=.
2.因php依赖 libmcrypt libmcrypt-devel mcrypt mhash 需要安装好,这边的内部管控还是有内部源可以访问的,支持这些基础安装
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
3.将离线包放到目标机中,运行下命令,查看报错信息,如果没报错,那就直接跳到第7步,启用php-fpm服务
rpm -Uvh *.rpm
4.这边遇到的问题 xxx is needed by xxx,
libargon2.so.()(64bit) is needed by
libcrypto.so.(OPENSSL_1.0.2)(64bit)
libicudata.so.()(64bit) is needed b
libicui18n.so.()(64bit) is needed b
5.去这个网站搜索报错信息里需要的依赖包 https://pkgs.org ,不要带.so,直接搜名字就行,在结果中选择系统对应的版本,比如centos7
- 比如 libargon2.so,点击第一条,新页面中查看 Install Howto

yum install libargon2 尝试下能不能执行,成功的话下一个,否则下载离线包安装
6.下面一行代码是本环境可以直接安装,满足php依赖。然后运行第3步的命令就可以成功,没有报错。
yum install -y libicu libargon2 openssl libcrypto
7.启用php-fpm服务,因项目用到php-fpm服务,而离线方式安装,没有启用service,需要运行下面命令
systemctl enable php-fpm.service
systemctl restart php-fpm
以上,php就安装成功了,项目已经用上了,暂时没有发现有什么问题,php运行良好,没有奇怪的崩溃异常。
安装phpredis ,访问下载页下载, 查看github页面安装说明,编译安装
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make && make install
echo "extension=redis.so" > /etc/php.d/redis.ini
systemctl reload php-fpm
Centos7 离线安装 php7的更多相关文章
- centos7离线安装PHP7
环境 centos7.9 PHP7.4.30 准备工作 在编译PHP时会提示一些包版本不够或者缺少某些包,一般选择yum来安装缺少的包,但因为是离线安装,所以可以手动配置本地yum源.先看一下系统版本 ...
- CentOS7离线安装mysql5.7
下载mysql5.7,系统选择redhat,版本选择RHEL7,下载RPM Bundle后得到一个tar文件.这里得到文件mysql-5.7.25-1.el7.x86_64.rpm-bundle.ta ...
- CentOS7 离线安装mysql-5.7.16
CentOS7 离线安装mysql-5.7.16 1 . 安装新版mysql前,需将系统自带的mariadb-lib卸载 [root@slave mytmp]# rpm -qa|grep mariad ...
- CentOS7离线安装Nginx(详细安装过程)
CentOS7离线安装Nginx(详细安装过程) 1.安装gcc.g++ 下载好所需的文件后上传至服务器(下载地址:https://download.csdn.net/download/a729360 ...
- Centos7 编译安装PHP7
Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟悉,以下为大致的安装流程,大家可以参考 1.下载编译工具 yum groupinsta ...
- CentOS7离线安装MySQL8.0
CentOS7离线安装MySQL8.0 卸载软件 rpm -e --nodeps 要卸载的软件包 root@jacky zookeeper]# rpm -e --nodeps java-1.6.0-o ...
- Binlog2sql+CentOS7 离线安装
Binlog2sql+CentOS7 离线安装 目录 Binlog2sql+CentOS7 离线安装 1. 环境 2. 下载 3.1 Pip 安装 3.2 PyMySQL/mysql-replicat ...
- CentOS7编译安装php7.1配置教程详解
这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...
- centos7.3安装php7.0
需求:在Centos7.3下搭建LNMP环境 文章转载自:http://blog.csdn.net/wszll_alex/article/details/76285324 作者:狂热森林 . 关闭防火 ...
随机推荐
- 测开之路一百五十一:ajax的作用和基本实现原理
有些情况需要请求和刷新部分资源,但是又不希望整个页面都刷新,这个时候就需要用ajax来处理,即页面的某一部分触发请求和刷新内容 准备两个视图和html from flask import Flask, ...
- Windows下对函数打桩,及Linux类似技术
一个简单的桩实现类: #define JMPCODE_LENGTH 5 //x86 平坦内存模式下,绝对跳转指令长度 #define JMPCMD_LENGTH 1 //机械码0xe9长度 #defi ...
- 【FICO系列】SAP FICO-模块 关于固定资产年结和折旧的问题
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FICO-模块 关于固定 ...
- sql语句传参数
SET @register = '; SET @unregister = '; UPDATE cw_base_register SET register = @register, unregister ...
- [DS+Algo] 007 希尔排序及其代码实现
步骤 将数组列在一个表(一行多列)中,按特定的步长进行插入排序 步长从 length/2 到 1,每次除 2 将数组转换至表是为了更好地理解这算法,算法本身还是使用数组进行排序 算法性能 (根据步长序 ...
- Java8---函数式编程-示例
// Java8函数式编程示例—(Predicate.Stream.Optional) https://blog.csdn.net/weixin_41950473/article/details/84 ...
- easy-mock的运用
一.概念 Easy Mock 是杭州大搜车无线团队出品的一个极其简单.高效.可视化.并且能快速生成模拟数据的 在线 mock 服务 .以项目管理的方式组织 Mock List,能帮助我们更好的管理 ...
- nginx动静分离与网关
当我们请求一个网页的时候,可能会加载很多css,js,img等静态文件:一般这些文件是很久都不会变化的,所以我们为了提高页面响应速度,完全可以将这些文件缓存到浏览器中(可以理解为cookie信息),这 ...
- 攻防世界--CGfsb238
测试文件:https://adworld.xctf.org.cn/media/task/attachments/5982010c172744c8a1c93c24b5200b21 1.格式化字符串漏洞 ...
- js 全世界最短的IE浏览器判断代码
var ie = !+"\v1"; 仅仅需要7bytes!参见这篇文章,<32 bytes, ehr ... 9, ehr ... 7!!! to know if your ...