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