Homestead 安装 MongoDB 以及扩展!

之前在文档中的一些讨论看评论区:Wiki:Laravel Homestead:安装 MongoDB 数据库
2019.10.27更新,
404是因为文件源的链接的问题,所以在使用homestead之前,请先更新源:
ubuntu 把软件源修改为国内源和更新

更新完成以后,尝试过更改配置,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)还没有,具体查看这个:Laravel官方Vagrant镜像Homestead手动安装php7.1的MongoDB扩展的方法
原来在cli中还有一个php.ini也要加入扩展。
加入完成,重启php:sudo service php7.2-fpm restart
查看。安装成功!
2.安装mongodb
因为更新了软件源,所以可以直接执行:sudo apt-get install -y mongodb-org
参考:CentOS7.4 安装mongodb
参考:Ubuntu16.04使用阿里云镜像安装Mongodb
(注意:我安装的是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不同,源的链接有所不同

附:查看ubuntu不同版本

根据官方文档操作安装

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!