如何在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-config7.0*

(7)make && make install

(8)如果出现模块未安装可 php –ini 查看ini路径相对调整

(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

原创文章,作者:NUOMQ,如若转载,请注明出处:http://www.wangzhanshi.com/n/9383.html

(0)
NUOMQ的头像NUOMQ
上一篇 2025年1月1日 16:43:17
下一篇 2025年1月1日 16:46:36

相关推荐

  • 使用ThinkPHP框架(thinkphp8.0)创建定时任的操作步骤

    1、安装定时任务composer包 composer require easy-task/easy-task 2、创建命令行处理类文件 php think make:command…

    php 2024年12月17日
  • 怎么提升PHP 8的性能

    今年年底,PHP-8即将发布。虽然这个主版本有很多新功能,例如联合类型、静态返回和弱映射等,但最令人期待的改进还是JIT编译器。 从理论上讲,JIT处理PHP脚本编译的方式能够提高…

    php 2025年1月2日
  • ThinkPHP5+PhpSpreadsheet实现批量导出数据

    前言 为什么使用PhpSpreadsheet? 由于PHPExcel不再维护,所以建议使用PhpSpreadsheet来导出exlcel,但是PhpSpreadsheet由于是个新…

    2024年12月17日
  • 怎么在PHP7项目中安装Swoole、Yar和Yaf

    php有什么用 php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因…

    2025年1月1日
  • php5不安全的原因是什么

    网络技术应用研究公司 W3Techs 近日表示,根据所有网站使用 PHP 版本的情况,从 2019 年 1 月 1 日起,有近 62% 的网站将会因为无法获得安全更新,而受到恶意攻…

    2025年1月2日
  • PHP8中的JIT是什么

    JIT 是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中…

    2025年1月2日
  • 基于PHP封装图片裁剪工具类

    PHP工具类图片裁剪类封装 <?php namespace App\Utils; /** * 图片裁剪工具类 * @author 田小涛 * @date 2020年7月23日…

    php 2024年12月17日
  • PHP中比较两个对象的几种方式小结

    引言 在PHP中,比较两个对象并不是一件直接明了的事情,因为对象之间的比较通常依赖于它们的属性和状态,而这些属性和状态可能非常复杂且多样化。PHP提供了几种方式来比较对象,但每种方…

    php 2024年12月17日
  • 为什么只有PHP5和PHP7,为什么不延续PHP6的序列?

    PHP7来了,那么PHP6去哪儿了呢? PHP7简介 PHP7是PHP编程语言全新的一个版本,主要在性能方面获得了极大的提升。官方的文档显示,PHP7可以达到PHP5.x版本两倍的…

    php 2025年1月1日
  • PHP5中怎么安装Apache

      PHP5在Apache下的两种模式怎么安装   一、CGI模式   1、解压php-5.0.0-Win32.zip到x:\php,重命名php.ini-dist为php.ini…

    php 2025年1月2日

发表回复

登录后才能评论