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不同,源的链接有所不同
本作品采用《CC 协议》,转载必须注明作者和本文链接