這篇文章主要介紹了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/xxxXxx表示你要選擇的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 nginxuseradd -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.inicd /usr/local/php/etccp 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