php -m 不显示mongodb_将Php-fpm docker容器与Mongo DB docker容器连接

运行Mongo DB Docker容器?

为MongoDb转到Docker。并且,选择要运行的mongo db映像。

转到命令终端。

类型:

docker run -d --name my-mongo mongo:latest

这将公开端口:默认情况下为27017。您可以通过安装Robo 3T(用于管理mongo db的软件)来连接到此mongo db实例。

运行一个php docker容器

我将运行php5 / apache容器。

跑:

docker run -d -p 8020:80 --name php-apache php:5-apache

注意:这将运行一个php容器,但是为了能够连接到mongo db容器,您需要将此容器链接到mongo db容器。

docker run -d -p 8020:80 --link my-mongo --name php-mongo-test php:5-apache

现在,您应该可以通过键入以下命令看到两个容器正在运行:“ docker ps”命令。

安装Mongo Php连接器

您将需要mongo php库才能编写连接到mongo db的php代码。

有两种方法:

  1. 运行php / apache映像,并手动安装php-mongo
  2. 编写一个自定义Dockerfile,并准备映像以安装php-mongo依赖项。

1.运行php / apache映像,并手动安装php-mongo

通过输入以下命令来检查php容器的容器ID:

docker ps

在该容器中打开一个shell / bash:(假设9da60559db80是我的容器ID)

docker exec -it 9da60559db80 bash

现在,您进入了php容器的shell终端。您将需要安装php-mongo依赖项。

运行以下命令:

 apt-get update apt-get install openssl libssl-dev libcurl4-openssl-dev pecl install mongo echo "extension=mongo.so" > /usr/local/etc/php/conf.d/mongo.ini

在上述步骤中,我们基本上安装了mongo db连接器所需的一些依赖项,并安装了mongo db php扩展名,并将其包含在php.ini列表中。

注意:Php容器加载/usr/local/etc/php/conf.d/目录中存在的所有ini文件

现在,您需要重新启动容器以加载mongo db扩展。

重新启动容器:

docker stop 9da60559db80docker start 9da60559db80

2.准备docker映像,并完成上述步骤

转到:https : //github.com/GyanBlog/php-mongo-docker,然后构建您的映像。您将完成上述步骤。请享用。

测试您是否正确加载了mongo db扩展名。在/ var / www / html目录中准备一个phpfile,例如info.php,并放入以下内容:

<?phpprint phpinfo();

在浏览器上,尝试:localhost:8082 / info.php

您应该看到一个大的html页面,其中显示php信息以及已安装的扩展名。搜索mongo,它应该显示一些结果。

运行连接到Mongo DB的PHP代码

<?php $connection = new MongoClient( "mongodb://my-mongo:27017" );$collection = $connection->selectCollection('db-name', 'collection-name');if (!$collection) { echo 'not connected to collection'; exit;}$cursor = $collection->find();foreach ($cursor as $doc) { var_dump($doc);}
f2c22667056fb840b83785518db34e94.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值