docker安装yaf扩展并发布

docker安装yaf扩展

参考 Docker 安装 PHP+nginx 一文观看

官方docker镜像安装扩展已有工具

//进入php容器
docker exec -it myphp /bin/bash
//切换安装工具目录
cd /usr/local/bin  
//安装mysql扩展
./docker-php-ext-install pdo_mysql  
//安装yaf扩展
./docker-php-ext-install yaf
//也可以自己下载好yaf包,拷贝进容器内,执行编译安装//查看是否安装成功
php -m

php7.3 用以上方法报错

自己下载好yaf包,拷贝进容器内,执行编译安装

cd ~
wget http://pecl.php.net/get/yaf-3.0.7.tgz
tar zxvf yaf-3.0.7.tgz
cd yaf-3.0.7
phpize # 生成匹配文件
php-config可以用whereis php-config 查找
./configure --with-php-config=/usr/local/bin/php-config # php-config存放php的一些配置信息,比如路径等。它会结合本地的php-config配置信息进行前期的编译准备
make #开始编译
make test
make install # 将module下的yaf.so放在/usr/local/lib/php/extensions/no-debug-non-zts-20180731/yaf.so下面

php7.3 无法安装yaf-3.0.7 会报错
make: *** [Makefile:253: yaf_session.lo] Error 1

cd ~
wget https://github.com/laruence/yaf/archive/yaf-3.0.8.tar.gz
tar zxvf yaf-3.0.8.tgz
cd yaf-yaf-3.0.8
phpize # 生成匹配文件
./configure --with-php-config=/usr/local/bin/php-config # php-config存放php的一些配置信息,比如路径等。它会结合本地的php-config配置信息进行前期的编译准备
make #开始编译
make test
make install # 将module下的yaf.so放在/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/yaf.so下面

拷贝出docker里的配置文件

docker cp id:/usr/local/etc/php/php.ini-development /mnt/php/conf/
docker cp id:/usr/local/etc/php/php.ini-production /mnt/php/conf/
docker cp id:/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini /mnt/php/conf/conf.d/
如果没有文件夹则新建  mkdir -p /mnt/php/conf/conf.d

* 修改php.ini

打开php.ini(/mnt/php/conf/),加入下面三行
[Yaf]
extension=yaf.so
yaf.environ="product"

eg:挂载目录
docker run --name  myphp-fpm -v /mnt/wwwroot:/www -v /mnt/php/conf:/usr/local/etc/php  -d php:7.3-fpm

docker restart id
在这里插入图片描述
容器打包push打包容器打包成镜像:
先注册 https://hub.docker.com (需要科学上网),自行百度

//打包,注意最后XXX必须为你的用户名
docker commit 容器ID  XXX/nginx
例:
docker commit -m "php:7.3 &yaf3.0.8" -a "zjc348" 2fbfc96ac10c zjc348/php:v1.0
//修改tag
//docker 容器ID XXX/nginx:latest (latest为版本,自行设置)
//登录dockerhub
docker login
docker push XXX/nginx
例:
docker push zjc348/php:v1.0

使用docker pull zjc348/php:v1.0
docker安装yaf扩展并发布_第1张图片

你可能感兴趣的:(docker)