簡體   English   中英

如何在 php:7.2-fpm-alpine 上啟用 mongodb?

[英]How to enable mongodb on php:7.2-fpm-alpine?

我正在嘗試在 php:7.2-fpm-alpine 上啟用 mongodb,但我看不到 php.ini 中加載的 mongodb 擴展

以下是一些附加信息:

# mongo --version
MongoDB shell version v3.4.4
git version: 888390515874a9debd1b6c5d36559ca86b44babd
OpenSSL version: LibreSSL 2.5.5
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

    # php -i | grep mongo 
PHP Warning:  PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so (Error loading shared library /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so.so (Error loading shared library /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so.so: No such file or directory)) in Unknown on line 0
/usr/local/etc/php/conf.d/20_mongodb.ini,

基於該警告,我猜測 mongo 擴展名丟失了,但這與 # mongo --version 命令檢索到的信息不沖突嗎?

我還嘗試使用 find / -name 'mongo*.*' 查找 mongodb.so。

在 php:7.2-fpm-alpine 上安裝和啟用 mongodb 驅動程序的最佳方法是什么?

更新:運行此命令時的附加信息:# apk list -a | grep "mongo" 我看到: mongodb-3.4.4-r0 x86_64 {mongodb} (AGPL3) [已安裝]

在做了更多的研究和挖掘之后,我最終在服務器上安裝了 PECL。

在 Alpine 上安裝 PECL:

apk update && apk upgrade
apk add --no-cache php7-pear php7-dev gcc musl-dev make

安裝 PECL 后,我運行以下命令:

sudo pecl install mongodb

安裝mongodb后,我在/usr/local/etc/php/conf.d/20_mongodb.ini中添加了“extension=mongodb.so”

最后我重新啟動了 docker 容器。

完成所有這些步驟后,我可以通過查看 phpinfo() 看到安裝並啟用了 Mongodb

現在當我運行時:

php -i | grep mongo

我懂了

mongodb
libmongoc bundled version => 1.17.0

我假設最新的 Mongodb(libmongoc) 是 PHP 包,而“MongoDB shell version v3.4.4”是服務器級包。

我希望有人會發現這些信息很有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM