Homestead 安裝 MongoDB 以及擴充套件!

她來聽我的演唱會發表於2019-10-27

之前在文件中的一些討論看評論區:Wiki:Laravel Homestead:安裝 MongoDB 資料庫
2019.10.27更新,
404是因為檔案源的連結的問題,所以在使用homestead之前,請先更新源:
ubuntu 把軟體源修改為國內源和更新 [https://www.cnblogs.com/flyinggod/p/797910...]

更新完成以後,嘗試過更改配置,mongodb:true,但是依然存在問題,所以就嘗試自己進行安裝。
1.安裝mongodb擴充套件:
執行: sudo pecl install mongodb
警告:

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update

解決:
執行 sudo pecl channel-update pecl.php.net
警告不影響擴充套件安裝。
安裝完成後會提示在php中加入Mongodb擴充套件,注意檢視自己環境的php版本(php -v)。這裡有個坑,就是在/etc/php/7.2/fpm/php.ini中加入,檢視擴充套件(php -m)還沒有,具體檢視這個:http://www.jicker.cn/5631.html
原來在cli中還有一個php.ini也要加入擴充套件。
加入完成,重啟php:sudo service php7.2-fpm restart
檢視。安裝成功!
2.安裝mongodb
因為更新了軟體源,所以可以直接執行:sudo apt-get install -y mongodb-org
參考:CentOS7.4 安裝mongodb https://www.jianshu.com/p/994bc7b19b26
參考:Ubuntu16.04使用阿里雲映象安裝Mongodb https://blog.csdn.net/weixin_30414155/arti...
(注意:我安裝的是4.0.0版本,如果使用映象連結安裝,請注意修改連結中的版本)!
等待大概20分鐘,安裝完成!
3.mongodb的使用
啟動:sudo service mongod start
檢視:ps -ef|grep mongo
mongodb開機啟動:systemctl enable mongod.service
安裝暫時到此,後續有新的再更新!

繼續更新
剛剛試了一下mongodb安裝成功並且連線成功,所以整理一下怎麼使用:
4.laravel mongodb安裝與配置
進入專案目錄執行:composer require jenssegers/mongodb
安裝完成,在config/app.php中:
'providers' 中加入:
Jenssegers\Mongodb\MongodbServiceProvider::class,
'aliases' 中加入:
'Moloquent' => Jenssegers\Mongodb\Eloquent\Model::class,
config/database.php中:

'mongodb' => [         //MongoDB
            'driver'   => 'mongodb',
            'host'     => '127.0.0.1',  //資料庫伺服器的ip
            'port'     => 27017,            //資料庫伺服器上mongodb服務對應的埠
            'database' => '你的資料庫名稱',  //資料庫名稱
            'username' => '',
            'password' => '',
            'options' => [
                'database' => '你的資料庫名稱' // 要使用的資料庫
            ]
],

5.mongodb模型定義:

<?php

namespace App\Models;

use Moloquent;

class Test extends Moloquent
{

    // protected $table = 'access_log';
    protected $connection = 'mongodb';//庫名
    protected $collection = 'user_logs';     //文件名
    // protected $primaryKey = 'id';    //設定主鍵
    protected $fillable = ['name', 'phone'];  //設定欄位白名單
}

6.控制器中使用:

public function test(){
        Test::create(['name'=>'李大','phone'=>'123456']);
        $res = Test::all();
        dump($res);
    }

輸出結果:

#attributes: array:5 [▼
        "_id" => ObjectId {#327 ▶}
        "name" => "李大"
        "phone" => "123456"
        "updated_at" => UTCDateTime {#333 ▶}
        "created_at" => UTCDateTime {#331 ▶}
      ]

總結:官方文件提供的方法比較簡單,但是自動安裝過程會因為很多原因導致無法進行,所以寫出來,分享一下這個“踩坑記錄!
2019.11.26更新,之前的按照在筆記本上(win10 64)的步驟,今天在桌上型電腦上(win7 64)試了一下,踩了好多坑!
1.更換源,apt-get update報錯導致擴充套件和MongoDB-org無法安裝:
在此請注意自己虛擬機器的版本,ubuntu不同,源的連結有所不同:
[https://developer.aliyun.com/mirror/ubuntu...]

附:檢視ubuntu不同版本:
https://jingyan.baidu.com/article/ca41422f...

2.根據官方文件操作安裝
https://docs.mongodb.com/manual/tutorial/i...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章