类MongoDB \ Driver \ Query'找不到,MongoDB安装

时间:2017-06-30 13:46:15

标签: php mongodb nginx yii2

对于此安装:

  • Nginx 1.11.10
  • Yii Framework 2.0.12(" yiisoft / yii2-mongodb":" ^ 2.0")
  • PHP MongoDB库(mongodb 1.2.9,兼容PHP版本:PHP 5.4.0或更高版本)
  • PHP 5.4.16
  • Plesk Onyx 17.0.17
  • 没有IPTables规则

奇怪的是,当您第一次访问该网站时,它们会起作用。我还可以看到从Mongo数据库中提取的数据。但是在10-20秒内访问另一个页面时,会出现此错误:

25403#0:* 170在stderr发送的FastCGI:" PHP消息:PHP致命错误:类' MongoDB \ Driver \ Query'在/var/www/vhosts/website.com/website.com/vendor/yiisoft/yii2-mongodb/Command.php上找不到第284和34行;从上游读取响应头

PHP Fatal Error – yii\base\ErrorException

Class' MongoDB \ Driver \ Query'未找到 1.在/var/www/vhosts/website.com/website.com/vendor/yiisoft/yii2-mongodb/Command.php第284行

    try {
        $this->beginProfile($token, __METHOD__);

        $query = new \MongoDB\Driver\Query($this->document, $options);

但是,如果再等10-20秒,网站就可以正常工作。

1 个答案:

答案 0 :(得分:0)

我在yii2 docker alpine nginx映像中解决了这个问题,

FROM local/dmstr/php-yii2:latest-alpine-nginx

RUN apk --update add autoconf g++ make && \
    pecl install mongodb
RUN echo "extension=mongodb.so" > /usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini

您必须安装mongodb,然后像我一样在系统的php extensions目录中为扩展名创建一个ini文件。请记住在其上放extension=mongodb.so