docker 官方 php 鏡像下安裝後沒有 mysqli gd 拓展

$ docker exec -it php /bin/bashphp

$ cd /usr/local/bin  html

$ ./docker-php-ext-install pdo_mysql mysqli mysql gd libzip-dev zip       // ./docker-php-ext-install pdo_mysql mysqli gd zip bcmathmysql

$ docker restart phpweb

 

ps:sql

if custom ./configure arguments are necessary, see docker-php-ext-configuremongodb

Possible values for ext-name:docker

bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt mssql mysql mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets spl standard sybase_ct sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zipjson

apt-get update && \ apt-get install -y libmcrypt-dev

 

// 安裝 gd 拓展bash

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

 

// 自定義 imagessession

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安裝gd擴展》

操做步驟

首先主機中執行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安裝gd擴展》

相關文章
相關標籤/搜索