当前位置: 首页 > news >正文

php7 安装yar 生成docker镜像

Docker包含三个概念:
(1)远程仓库即远程镜像库所有镜像的聚集地(不可进入操作)。
(2)本地镜像即从远程仓库拉取过来的镜像
(3)运行起来的本地镜像叫做容器(分层的可操作)
Docker使用:
1.首先通过第三方镜像库(c.163.com)拉取相应的信息比如centos,ubuntu,tomcat等作为基础镜像。
Docker pull xxxx
2.运行下载好的镜像。
Docker run -dt -p 宿主机端口:镜像端口 --name起一个名字 镜像id/镜像名字 bash
-d 后台运行
-t 生成一个伪终端
-p 指定端口
--name 为运行的容器起一个名字
3.进入容器有两种方法
(1)docker exec -it容器名字/容器id bash(ctrl+d退出时不会停止该运行的容器)
(2)Docker attach 容器名字/容器id (ctrl+d退出时会停止该运行的容器)
4.开始下载编译环境所需的相应的工具和所需的依赖包
(1)yum安装wget以及编译的工具 yum install -y wget gcc gcc-c++ make openssl-devel
(2)更新国内yum源
Wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/xxx/
Xxx表示你要选择的yum源
-O 下载并以不同的文件名保存
CentOS-Base.repo 表示命名的yum源
(3)下载各个版本的nginx版本
Wget http://nginx.org/download/xxx
Xxx表示你要选择的nginx的版本
(4)下载pcre
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/xxx
Xxx表示选择的版本
(5)更新yum确保最新的
Yum update
(6)下载php7
http://php.net/downloads.php
选择版本,选择国界
(7)把以上下载的东西全部粘贴到/usr/local/src 并且全部解压
(8)编译nginx
(1)创建nginx用户
 groupadd -r nginx
useradd -r -g nginx nginx
(2)编译安装nginx
cd xxx 切换到您的nginx目录
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37
./configure参数说明:
--prefix=指定文件的安装目录
--user=指定用户
--group指定用户组
--with-使用已有的软件包和库文件
Make && make install 出现问题自行百度
echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf #在nginx的配置文件里加上这一行很关键,这样nginx可以在docker启动的时候在后台运行!
(9)编译php
(1)准备php的依赖包
yum install -y bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel
(2)进入php文件目录
(3)开始编译php
./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr/local/libxml --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --enable-gd-native-ttf --with-openssl --with-fpm-user=www --with-fpm-group=www --with-libdir=lib64 --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-xml --enable-shmop --enable-session --enable-ctype --with-iconv-dir --with-iconv
注:出现问题自行百度。
(4)make && make install
(5)准备php配置文件
cp php.ini-production /etc/php.ini
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
(6)修改配置文件
;daemonize = yes的注释去掉,并把yes改为no
(7)安装yar拓展
(1)安装二进制打包协议msgpack
find / -name phpize 查找phpize是否存在
yum install php-devel
pecl install msgpack
注:出现问题自行百度
(2)下载yar wget http://pecl.php.net/get/xxx
Xxx表示版本 确定好与php版本对照这个很重要。
(3)解压编译tar -zxvf yar-2.0.0.tgz
(4)cd cd yar-2.0.0
(5)/usr/bin/phpize
(6)./configure --with-php-config=/usr/bin/php-config
(7)make && make install
(8)如果出现模块未安装可 php --ini 查看ini路径相对调整,将extension=yar.so写入配置文件
(9)docker commit -m "描述" -a "作者" 容器id 仓库信息mydocker/nginx:版本信息v1
(10)docker save xxx > /home/save.tar
(11)Docker load xxx

  如果编译安装过程中报错,按照报错提示的去用yum解决依赖关系;如果当前的yum源解决不了,那么可以试试:

    wget http://www.atomicorp.com/installers/atomic

    chmod +x atomic

    ./atomic 

    yum install -y XXX XXX

 

转载于:https://www.cnblogs.com/ccs-mxs/p/ccs-mxs.html

相关文章:

  • 闪屏完善
  • vSphere
  • sed awk 练习
  • 利用数组创建的顺序表实现各种功能
  • 公司管理系列--80% of Your Culture is Your Founder(FaceBook)
  • 一道有趣的啤酒趣味题
  • Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)...
  • javaWeb_使用标签库简化jsp
  • 地图后台判断一点是否在一个区域内
  • 思科路由器DHCP配置(GNS3模拟)
  • 冲刺(8)
  • POJ - 1062 昂贵的聘礼(最短路Dijkstra)
  • openssl生成https证书 (转)
  • vue单文件里name属性是做什么的?
  • JS题目及答案整理
  • Angular 响应式表单 基础例子
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Lsb图片隐写
  • React+TypeScript入门
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 编写符合Python风格的对象
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 前端知识点整理(待续)
  • 如何利用MongoDB打造TOP榜小程序
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 优化 Vue 项目编译文件大小
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (solr系列:一)使用tomcat部署solr服务
  • (二)hibernate配置管理
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .htaccess配置重写url引擎
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .Net接口调试与案例
  • @media screen 针对不同移动设备
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [BZOJ 1040] 骑士
  • [BZOJ3223]文艺平衡树
  • [Grafana]ES数据源Alert告警发送
  • [Linux] PXE批量装机
  • [NAND Flash 6.4] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
  • [Oh My C++ Diary]用cout输出时后endl的使用
  • [Swift] Enum 好用, Enum 可以更易用
  • [WebGL入门]二十五,点光源的光照
  • [Winodows Phone 7控件详解]Map-2
  • [北航软工]技术规格说明书
  • [编程之法]2.2 寻找和为定值的两个数
  • [导入]厚度仅9.5mm的SSD硬盘问世
  • [面试题记录01]实现一个function sum达到一下目的
  • [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.5
  • [日常] Go语言圣经--作用域,基础数据类型,整型
  • [通俗易懂]《动手学强化学习》学习笔记1-第1章 初探强化学习