gpt4 book ai didi

mongodb - 不能在 Symfony 3 中使用 mongodb (docker)

转载 作者:可可西里 更新时间:2023-11-01 10:21:55 28 4
gpt4 key购买 nike

我在将 mongodb 与 Symfony 3.1.2 集成时遇到了一些问题。我用 DoctrineMongoDBBundle .

在“将对象持久化到 MongoDB”阶段之前一切正常。当我添加行时:

$dm = $this->get('doctrine_mongodb')->getManager();
$dm->persist($product);
$dm->flush();

我的远程数据库没有任何反应,我收到错误消息:

试图从全局命名空间加载类“MongoId”。
您是否忘记了“使用”语句?

我在 Mac 上使用 docker beta。我的 docker-compose.yml :

version: '2'
services:
application_ad:
image: busybox
volumes:
- ./:/var/www/html
- ./docker/nginx/conf.d/ad.conf:/etc/nginx/conf.d/default.conf
entrypoint: "tail -f /dev/null"
php_ad:
build: ./docker/php-fpm
links:
- db
volumes_from:
- application_ad
web_ad:
build: ./docker/nginx
ports:
- "8089:80"
links:
- php_ad
volumes_from:
- application_ad
db:
image: mongo:3.2.7
volumes:
- ./mongo-data:/data/db
ports:
- "27017:27017"

还有 php-fpm 文件:

FROM php:7-fpm

MAINTAINER Me <dev@me.com>

# nginx and php-fpm user MUST be the same
RUN usermod -u 1000 www-data

# set php.ini
RUN touch /usr/local/etc/php/conf.d/php.ini
RUN { \
echo "date.timezone = Europe/Paris"; \
echo "short_open_tag = off"; \
} >> /usr/local/etc/php/conf.d/php.ini

# composer install
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer

# install php extensions dependencies
RUN apt-get update && apt-get install -my mlocate wget \
zlib1g-dev openssl libcurl4-openssl-dev libssl-dev pkg-config libgdbm-dev libjpeg-dev libpng-dev libmcrypt-dev libicu-dev g++

# install php extensions
RUN docker-php-ext-install curl
RUN docker-php-ext-configure gd --with-jpeg-dir="/usr/lib/x86_64-linux-gnu"
RUN docker-php-ext-install gd
RUN docker-php-ext-install json
RUN docker-php-ext-install mcrypt
RUN docker-php-ext-install mcrypt
RUN docker-php-ext-install intl
RUN docker-php-ext-install opcache
RUN pecl install apcu && pecl install channel://pecl.php.net/apcu_bc-1.0.3

# install mongo
RUN pecl install mongodb
RUN echo "extension=mongodb.so" > /usr/local/etc/php/conf.d/mongo.ini

# configure extensions
RUN { \
echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/opcache.so'; \
echo 'opcache.memory_consumption=256'; \
echo 'opcache.interned_strings_buffer=16'; \
echo 'opcache.max_accelerated_files=20000'; \
echo 'opcache.revalidate_freq=2'; \
echo 'opcache.fast_shutdown=1'; \
echo 'opcache.enable_cli=1'; \
} > /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini

RUN { \
echo 'extension=apcu.so'; \
echo 'extension=apc.so'; \
echo 'apc.enabled=1'; \
echo 'apc.shm_size=256M'; \
echo 'apc.ttl=7200'; \
echo 'apc.enable_cli=1'; \
echo 'apc.gc_ttl=3600'; \
echo 'apc.entries_hint=4096'; \
echo 'apc.slam_defense=1'; \
echo 'apc.serializer=php'; \
} > /usr/local/etc/php/conf.d/docker-php-ext-apc.ini

PHP 信息() :

enter image description here

也许是 docker 问题?或者 Symfony 问题。

最佳答案

我正在将 PHP 7 与 mongodb 结合使用,并且也在使用 symfony 和 docker。我遇到的唯一问题是我需要安装的 php-extension 是 mongodb 而不是 mongo。安装 mongodb 扩展后,一切正常。

这是我的 Composer 要求:

"require": {
"doctrine/mongodb-odm": "^1.1.0",
"doctrine/mongodb-odm-bundle": "^3.1.0",
"alcaeus/mongo-php-adapter": "^1.0.0",
"ext-mongo": "*"
}

如果 composer install 仍然失败,请在你的 composer require 下面添加这一行

"provide": {
"ext-mongo": "1.6.13"
}

希望对你有帮助

关于mongodb - 不能在 Symfony 3 中使用 mongodb (docker),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38372205/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com