Docker PHP环境搭建

拉取PHP镜像

docker pull php:7.3-fpm

安装拓展

docker容器内安装php拓展使用如下命令进行安装

命令 说明
docker-php-ext-source 在容器中创建一个/usr/src/php目录
docker-php-ext-enable 启用PHP扩展,省去我们手工编辑php.ini的过程
docker-php-ext-install 安装并启用PHP扩展
docker-php-ext-configure 经常与docker-php-ext-install搭配,在需要自定义扩展的配置时使用

例如:安装pdo拓展,使用如下命令即可

docker-php-ext-install pdo

有些拓展使用 docker-php-ext-install 命令不能安装,可以使用pecl工具进行安装,当装好php的容器之后,容器内已经安装好了pecl工具,所以直接拿来使用即可。使用方法如下:

例如安装php的memcached拓展
1.首先更新源
apt-get update
2.安装所需依赖
apt-get install -y libmemcached-dev zlib1g-dev
3.安装memcached拓展
pecl install memcached
4.启用拓展
docker-php-ext-enable memcached

安装gd库拓展
1.首先更新源
apt-get update
2.安装所需依赖
apt-get install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
3.安装拓展
docker-php-ext-install gd 

docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/  \
  && docker-php-ext-install -j$(nproc) gd iconv mcrypt

安装GD库还是报错:docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2/

也可以编写一个DockerFile,加入如下命令:

FROM php:7.1-fpm
RUN apt-get update \
	# 手动安装依赖
	&& apt-get install -y libmemcached-dev zlib1g-dev \
	# 安装需要的扩展
   && pecl install memcached-2.2.0 \
   # 启用扩展
   && docker-php-ext-enable memcached
安装zip扩展所需的依赖扩展
apt-get update && apt-get install -y zlib1g-dev && apt-get install -y libzip-dev

安装并启动zip扩展
docker-php-ext-install zip
./configure --prefix=/usr/local/php/php8 \
     --with-config-file-path=/usr/local/php/php8/etc \
     --with-config-file-scan-dir=/usr/local/php/php8/etc/conf.d \
     --enable-bcmath \
     --with-bz2=/usr/local/opt/bzip2 \
     --with-curl=/usr/local/opt/curl \
     --enable-filter \
     --enable-fpm \
     --with-gd \
     --enable-gd-native-ttf \
     --with-freetype-dir \
     --with-jpeg-dir \
     --with-png-dir \
     --enable-intl \
     --enable-mbstring \
     --with-mcrypt \
     --enable-mysqlnd \
     --with-mysql-sock=/tmp/mysql.sock \
     --with-mysqli=mysqlnd \
     --with-pdo-mysql=mysqlnd \
     --with-pdo-sqlite \
     --with-zlib-dir=/usr/local/opt/zlib \
     --with-iconv=/usr/local/opt/libiconv \
     --with-icu-dir=/usr/local/opt/icu4c \
     --disable-phpdbg \
     --disable-phpdbg-webhelper \
     --enable-opcache \
     --with-openssl=/usr/bin/openssl \
     --enable-simplexml \
     --with-sqlite3 \
     --enable-xmlreader \
     --enable-xmlwriter \
     --enable-zip \
     --enable-sockets \
     --with-xmlrpc