我是靠谱客的博主 大气小猫咪,最近开发中收集的这篇文章主要介绍docker内给php安装扩展的三种方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近做了个php-fpm-alpine的dockerfile文件,基于php7.4.6和alpine3.11;初始文件还是从官方拿的,但是我们日常使用php会用到很多初始镜像内不存在的扩展,所以就总结了一下在docker内为php安装扩展的三种方式,供大家参考,当然也可以直接看我的dockerfile文件:https://github.com/myeye520/dockerfile/tree/master/php/php-fpm7.4.6-alpine3.11。

一:docker已经打包好的扩展(例如gd,bcmath等)

主要包括gd,bcmath等,如果想要看docker已经打包了哪些扩展,可以使用:

docker-php-source extract    //拉取所有的docker已打包的扩展到/usr/src
cd /usr/src/php/ext
ls 

既可以看到。 这些扩展是可以使用docker自带的命令安装的,在dockerfile直接写:

RUN apk update && apk add --no-cache 
    freetype-dev libjpeg-turbo-dev libpng-dev 
	&& docker-php-ext-configure gd --with-freetype --with-jpeg 
    && docker-php-ext-install gd 
    docker-php-ext-install bcmath

安装成功,使用 php -m 可以看到已经安装了gd扩展和bcmath扩展;

二:php的pecl库里存在的扩展(例如redis,memcached,swoole等)

这些扩展需要先使用pecl安装,然后再使用docker命令开启扩展即可

RUN apk update && apk add --no-cache 
	autoconf g++ make libmemcached-dev 
	&& pecl install redis-5.2.2 
	&& docker-php-ext-enable redis 
	&& pecl install memcached 
	&& docker-php-ext-enable memcached 
	&& pecl install swoole 
	&& docker-php-ext-enable swoole

安装成功,使用 php -m 可以看到已经安装了redis、memcached、swoole扩展;

三:需要自己编译生成的php扩展(例如zmq)

# 安装zmq扩展
RUN cd /usr/src  
	&& apk add --no-cache --virtual .git_deps git 
	&& git clone git://github.com/mkoppanen/php-zmq.git  
	&& apk del .git_deps 
	&& apk add --no-cache  zeromq-dev 
	&& cd php-zmq 
	&& phpize 
	&& ./configure 
	&& make 
	&& make install 
	&& docker-php-ext-enable zmq

安装成功,使用 php -m 可以看到已经安装了zmq扩展;

以上就是这次总结的三种php扩展安装方式,希望对大家有用处,欢迎指正

最后

以上就是大气小猫咪为你收集整理的docker内给php安装扩展的三种方式的全部内容,希望文章能够帮你解决docker内给php安装扩展的三种方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部