如何安装旧版本的 pecl 包

abb*_*ood 44 php mac-osx pecl pear mongodb

我有这个代码

    $passengerId = new \MongoId(oPassenger->getId());

    return $this->createQueryBuilder('Device')
        ->update()
        ->multiple(true)
        ->field('activated')->set(false)
        ->field('passenger')->unsetField()->equals($passengerId)
        ->field('_id')->notEqual($deviceId)
        ->getQuery()
        ->execute();
Run Code Online (Sandbox Code Playgroud)

它在我的开发服务器上运行良好,但在我的本地机器上崩溃。

pecl list在开发返回时运行

APC     3.1.13  beta
amqp    1.2.0   stable
intl    3.0.0   stable
mongo   1.3.7   stable
Run Code Online (Sandbox Code Playgroud)

和本地回报:

mongo   1.5.6   stable
xdebug  2.2.5   stable
Run Code Online (Sandbox Code Playgroud)

我机器上的崩溃消息是

"name":"MongoException","message":"Invalid object ID"},"code":500}
Run Code Online (Sandbox Code Playgroud)

我试过降级 mongo 的本地版本,但我无法用 pecl 糟糕的文档来解决这个问题。例如我试过这个:

sudo pecl upgrade -f -c channel://pecl.php.net/mongo-1.3.7
Run Code Online (Sandbox Code Playgroud)

但我一直在获取channel does not exist我所有的频道排列。

也在mongod --version本地运行返回db 版本 v2.6.0,在 dev 上返回db 版本 v2.4.3

想法?

Icu*_*Icu 69

要降级,你可以试试这个:

pecl install mongo-1.3.7
Run Code Online (Sandbox Code Playgroud)


然后 pecl list 会告诉你它有效。

  • 可能需要强制执行:`pecl install -f mongo-1.3.7` (9认同)