docker 官方 php 镜像下安装后没有 mysqli gd 拓展

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

$ docker exec -it php /bin/bash

$ cd /usr/local/bin  

$ ./docker-php-ext-install pdo_mysql mysqli mysql gd

$ docker restart php

 

// 安装 gd 拓展

docker 官方 php 镜像下安装后没有 mysqli gd 拓展_第1张图片

apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

 

// 自定义 images

Dockerfile

FROM php:5.6-fpm

RUN apt-get update && \
apt-get install -y --no-install-recommends \
libssl-dev 


# install the mongodb extension
RUN pecl install mongo-1.6.1 && \
docker-php-ext-enable mongo

Dockerfile

FROM php:5.6-fpm

RUN apt-get update && \
apt-get install -y --no-install-recommends \
libssl-dev 


# install the mongodb extension
RUN pecl install mongodb-1.4.4 && \
docker-php-ext-enable mongodb
FROM php:7.1-fpm
RUN apt-get update \
	# 相关依赖必须手动安装
	&& apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
    # 安装扩展
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    # 如果安装的扩展需要自定义配置时
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

 

ps:

https://blog.aikamino.cn/a/1019.html

gd库安装步骤

在容器内使用docker-php-ext-install gd安装gd,使用过程中一些程序报错Call to undefined function imagettftext()。在phpinfo中发现它只支持png,所以需要重新编译。

本文使用的docker镜像为php:7.1-fpm

docker 官方 php 镜像下安装后没有 mysqli gd 拓展_第2张图片

操作步骤

首先主机中执行docker exec -it <容器名 or id> /bin/bash进入容器的命令行。

#主机中
#如果之前启用了gd,需要先在php.ini文件中注释掉extension=gd.so并重启容器
docker exec -it <容器ID或容器名称> /bin/bash    #进入php容器
#容器中
echo "deb http://mirrors.163.com/debian/ stretch main contrib non-free\ndeb http://mirrors.163.com/debian/ stretch-updates main contrib non-free\ndeb http://mirrors.163.com/debian/ stretch-backports main contrib non-free" > /etc/apt/sources.list  #软件源修改为网易镜像站源
apt update  #更新软件源
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev #安装各种库
docker-php-source extract #解压源码
cd /usr/src/php/ext/gd  #gd源码文件夹
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2   #准备编译
docker-php-ext-install gd   #编译安装
php -m | grep gd
#重启容器

如果没有出现错误,那么gd应该已经支持jpeg等。

docker 官方 php 镜像下安装后没有 mysqli gd 拓展_第3张图片

 

转载于:https://my.oschina.net/jack088/blog/3006749

你可能感兴趣的:(docker 官方 php 镜像下安装后没有 mysqli gd 拓展)