一,我的环境
我这边使用的是 webdevops 的 php-nginx:7.2环境
docker镜像地址拉取命令:
docker pull webdevops/php-nginx:7.2
运行命令:
docker run -itd
--name oceanv1
-p 80:80
-v /e/vagrant/docker/ocean/:/app/
-v /e/vagrant/docker/etc:/opt/docker/etc/
webdevops/php-nginx:7.2
二,扩展下载
memcache扩展下载地址
注意版本 我的php7.2 所以 扩展版本选择的是 4.0.5.1
下载后 拷贝至目录卷内 /e/vagrant/docker/ocean/ 也就是 E盘下的ocean文件夹 此时 docker app目录下 也会有memcache.tgz的包
三,安装
docker环境内安装php扩展需要用到 以下四个命令 不明白可以参考
这里
docker-php-source
docker-php-ext-install
docker-php-ext-enable
docker-php-ext-configure
系统命令配置
cat /etc/issue
查看系统版本
默认 apt-get命令是不好使的
默认安装的是 dash,而不是 bash。
运行以下命令查看 sh 的详细信息,确认 shell 对应的程序是哪个:
$ls -al /bin/sh
dash 比 bash 更轻,更快。但 bash 却更常用。
如果一些命令、脚本等总不能正常执行,有可能是 dash 的原因。
比如编译 Android 源代码的时候,如果使用 dash,则有可能编译出错,或者编译的系统不能启动。
通过以下方式可以使 shell 切换回 bash:
$sudo dpkg-reconfigure dash
然后选择 no 或者 否 ,并确认。
这样做将重新配置 dash,并使其不作为默认的 shell 工具。
而后 安装 zlib-dev扩展 这个是memcache的依赖扩展
apt-get install zlib1g.dev
正餐
docker-php-source extract // 生成php 目录
tar xvf memcache-4.0.5.1.tgz // 解压 memcache
cp /memcache-4.0.5.1 /usr/src/php/ext // 拷贝到生成的php目录下的扩展目录
cd /usr/src/php/ext
mv memcache-4.0.5.1 ./memcache // 剪切一下
docker-php-ext-install memcache // 开始安装
php -m | grep memcache // 查看是否安装成功
补充
ubuntu 的环境 大致的思路也是一样的 我在官网拉了一下 php的独立镜像
环境是ubuntu 它的 apk add 命令是正常可以使用的 所以没有那么麻烦 只需要安装好 zlib-dev扩展 就可以使用 docker-php-ext-install安装了 不需要改系统的命令
apk add --no-cache -U zlib-dev