Docker 构建PHP镜像
2021-05-28 23:01
标签:please 需要 模块名 library 执行 sem red zip2 shmop 以下命令都需要在php容器中执行 docker-php-source:是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件,自带的PHP扩展,扩展存放的路径/usr/src/php/ext docker-php-ext-install:用来安装并启动php扩展 docker-php-ext-enable:就是用来启动PHP扩展的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。 安装php模块的时候一些依赖报错 Docker 构建PHP镜像 标签:please 需要 模块名 library 执行 sem red zip2 shmop 原文地址:https://www.cnblogs.com/cyleon/p/14763351.html一、构建PHP镜像需要用到的命令
docker-php-source [ extract | delete ]
参数说明:
extract : 创建并初始化 /usr/src/php目录
delete : 删除 /usr/src/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 对应的配置文件即可。
安装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
模块名称: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=
解决方法: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=
解决方法:apt-get install libzip-dev -y
上一篇:Three.js 游戏操作案例
下一篇:linux安装nodejs