• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Docker 构建PHP镜像

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、构建PHP镜像需要用到的命令

以下命令都需要在php容器中执行

docker-php-source:是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件,自带的PHP扩展,扩展存放的路径/usr/src/php/ext

docker-php-source  [ extract | delete ]
参数说明:
extract : 创建并初始化 /usr/src/php目录
delete  : 删除 /usr/src/php目录

docker-php-ext-install:用来安装并启动php扩展

docker-php-ext-install "源码包名"
安装说明:
"源码包"需要放在 /usr/src/php/ext 目录下
默认情况下,PHP容器没有/usr/src/php这个目录,需要执行# docker-php-source extract 来生成。
docker-php-ext-install 安装的扩展在安装完成后,会自动调用docker-php-ext-enable来启动安装的扩展。
卸载扩展,直接删除/usr/local/etc/php/conf.d 对应的配置文件即可。

docker-php-ext-enable:就是用来启动PHP扩展的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。

安装redis扩展
pecl install redis-5.3.4
docker-php-ext-enable redis

二、按需求构建php镜像,安装需要的php模块

# cat Dockerfile
FROM php:7.3.28-fpm
ADD swoole.tar.gz /usr/src/php/ext/         # 需要先自行下载 curl -fsSL 'https://pecl.php.net/get/swoole-4.5.9.tgz',解压后包名修改为swoole,再压缩成tar包。也可以直接在容器中下载改名,因为网络原因经常失败,所以先在本地下载后改名打包。
RUN apt-get update && apt-get install -y \
bzip2 \
libbz2-dev \
libpng-dev \
libgmp-dev \
libxml2-dev \
libxslt1-dev \
libzip-dev \
&& docker-php-source extract \
&& docker-php-ext-install exif \
bcmath \
bz2 \
calendar \
gd \
gettext \
gmp \
mysqli \
pcntl \
pdo_mysql \
shmop \
soap \
sockets \
sysvsem \
xmlrpc \
xsl \
zip \
swoole \
&& pecl install redis-5.3.4 \
&& pecl install mongodb \
&& docker-php-ext-enable redis mongodb \
&& docker-php-source delete \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean 

安装php模块的时候一些依赖报错

模块名称:bz2      报错:configure: error: Please reinstall the BZip2 distribution    
解决方法:apt-get install bzip2 libbz2-dev -y
模块名称:gd 报错:configure: error: png.h not found.
解决方法:apt
-get install libpng-dev -y
模块名称:gmp 报错:configure: error: Unable to
locate gmp.h
解决方法:apt-get install libgmp-dev
模块名称:soap 报错:configure: error: libxml2 not found. Please check your libxml2 installation.
解决方法:apt
-get install -y libxml2-dev -y
模块名称:xmlrpc 报错:configure: error: libxml2 not found. Use
--with-libxml-dir=<DIR>
解决方法:apt-get install -y libxml2-dev -y
模块名称:xsl 报错:configure: error: xslt
-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决方法:apt-get install libxslt1-dev
模块名称:zip 报错:checking for the location of zlib... configure: error: zip support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located
解决方法:apt-get install libzip-dev -y

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php模拟post提交文件图片等发布时间:2022-07-10
下一篇:
php数组处理函数总结(五)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap