筆記 Install php MongoDB driver on MacOS

** 2019.08 更新** https://www.php.net/manual/en/mongodb.installation.homebrew.php mac php72 請使用 pecl install mongodb 安裝 mongodb driver 因為 mongodb, xdebug 從 homebrew 被移除了

[time=Thu, Aug 15, 2019 7:59 PM]

問題描述

想在 LaravelMongoDB

composer require jenssegers/mongodb

錯誤:

the requested PHP extension mongodb is missing from your system.

=> 沒有裝 php 的擴展

解決方案

先來個悲劇, homebrew 拿掉 php-mongodb 的擴展了QQ

只好去裝人家的,我的 php 版本是 7.1 所以裝 php71-mongodb 忘記版本的話可以用 php --version 查看

brew tap kyslik/php
brew install phpxx-mongodb   {xx = 71,72}

裝完惹! 但是當我輸入 php -i 檢查的時候 dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib

哎呀QQ 來去 Google 看看

ln -s /usr/local/opt/readline/lib/libreadline.8.0.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

之後可以輸入來檢查有沒有成功

» php -m | grep mongodb
mongodb

link 我手上有的版本過去之後,一切順利呢!!

composer require jenssegers/mongodb

後記 - 小踩雷

  • 要是php -i | grep mongodb什麼都沒有的話可能是當初在安裝php的時候沒有安裝完全

    • 移除php重裝一次
    • 然後 brew link phpxx
    • 你的 /usr/local/有可能會沒有sbin這個資料夾所以就mkdir sbin
    • 然後成功連結他應該就可以惹
    • ※小秘訣:你可以跑 brew doctor 叫醫生幫你診斷~
  • 跑起來遇到

Symfony\Component\Debug\Exception\FatalThrowableError  : Call to a member function prepare() on null

可以把原本 extend 的 Model 換成 \Jenssegers\Mongodb\Eloquent\Model