Laravel Homestead:安装 MongoDB 数据库 1 个改进

修改配置

如果你想在 Homestead 里安装 MongoDB 的话,只需要在 Homestead.yaml 中加入 mongodb: true ,同时features 中增加 mongodb: true 即可,如下:

Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

# 使用 MongoDB
mongodb: true
features:
    - mongodb: true
.
.
.

应用修改

保存修改后,在 主机 中使用以下命令应用修改到 Homestead 虚拟机中:

> vagrant reload --provision

连接信息

虚拟机

  • host: 127.0.0.1
  • user: homestead
  • pass: secret
  • port: 27017

主机

  • host: 192.168.10.10
  • user: homestead
  • pass: secret
  • port: 27017

注:转发端口是一致的。

背后的代码

这里我们简单讲下以上操作背后的信息,以助于理解其工作原理。

当配置信息里设置了 mongodb: true 时,会触发 homestead.rb 里的这段操作 ,然后会去调用 Shell 脚本 install-mongo.sh 来安装 MongoDB 数据库。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 4

按照楼主提供的方法,安装MongoDB会遇到一直卡住的情况:

homestead-7: Get:62 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 mongodb-org-mongos amd64 3.6.13 [8,546 kB]
homestead-7: Get:63 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 mongodb-org-tools amd64 3.6.13 [53.3 MB]
homestead-7: Get:63 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 mongodb-org-tools amd64 3.6.13 [53.3 MB]

按照上述路径访问,速度也还可以,请问这是什么问题?或者说是因为链接地址的问题,换镜像源(比如阿里云)怎么更换?
对了,尝试使用pecl安装也是提示有错误和失败!

2019-07-17更新:
安装了一晚上,上述步骤成功跳过,然后提示:

homestead-7: Package configuration┌────────────────────┤ Modified configuration file ├────────────────────┐│ php.ini: A new version (/usr/lib/php/7.1/php.ini-production.cli) of   ││ configuration file /etc/php/7.1/cli/php.ini is available, but the││ version installed currently has been locally modified.││││ What do you want to do about modified configuration file php.ini?││││install the package maintainer's version││keep the local version currently installed          ││show the differences between the versions││show a side-by-side difference between the versions││start a new shell to examine the situation││││││<Ok>│││

vagrant ssh执行php -m查看,无mongodb扩展,执行ps -ef|grep mongo,无MongoDB服务进程,执行sudo service mongod start开启MongoDB,提示:
Failed to start mongod.service: Unit mongod.service not found.

说明未安装成功!
4年前 评论
皮皮强 3年前

按照楼主提供的方法,安装MongoDB会遇到一直卡住的情况:

homestead-7: Get:62 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 mongodb-org-mongos amd64 3.6.13 [8,546 kB]
homestead-7: Get:63 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 mongodb-org-tools amd64 3.6.13 [53.3 MB]
homestead-7: Get:63 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 mongodb-org-tools amd64 3.6.13 [53.3 MB]

按照上述路径访问,速度也还可以,请问这是什么问题?或者说是因为链接地址的问题,换镜像源(比如阿里云)怎么更换?
对了,尝试使用pecl安装也是提示有错误和失败!

2019-07-17更新:
安装了一晚上,上述步骤成功跳过,然后提示:

homestead-7: Package configuration┌────────────────────┤ Modified configuration file ├────────────────────┐│ php.ini: A new version (/usr/lib/php/7.1/php.ini-production.cli) of   ││ configuration file /etc/php/7.1/cli/php.ini is available, but the││ version installed currently has been locally modified.││││ What do you want to do about modified configuration file php.ini?││││install the package maintainer's version││keep the local version currently installed          ││show the differences between the versions││show a side-by-side difference between the versions││start a new shell to examine the situation││││││<Ok>│││

vagrant ssh执行php -m查看,无mongodb扩展,执行ps -ef|grep mongo,无MongoDB服务进程,执行sudo service mongod start开启MongoDB,提示:
Failed to start mongod.service: Unit mongod.service not found.

说明未安装成功!
4年前 评论
皮皮强 3年前

2019.10.27更新,404是因为文件源的链接的问题,所以在使用homestead之前,请先更新源:
ubuntu 把软件源修改为国内源和更新https://www.cnblogs.com/flyinggod/p/7979108.html

更新完成以后,尝试过更改配置,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中加入,19.10.27更新,404是因为文件源的链接的问题,所以在使用homestead之前,请先更新源:
ubuntu 把软件源修改为国内源和更新https://www.cnblogs.com/flyinggod/p/7979108.html

更新完成以后,尝试过更改配置,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
安装暂时到此,后续有新的再更新!

4年前 评论

@她来听我的演唱会 你好! 我想请教下。
跟据你上面流程不知道为什么 mongodb 扩展报错,网上说可能 homestead 有个多 php 版本的 phpize 指向问题和 ./configure 指向配置。但是默认就是我指向的 php 7.2版本。还有就是sudo pecl install mongodb 下载的mongodb.so是放在 /usr/lib/php/20190902/ 这个文件夹的,但是我的 php7.2是指向 /usr/lib/php/20170718/这个文件夹的。我试了修改php.ini的为全目录路径extension=/usr/lib/php/20190902/mongodb.so 还是报如下这错!

file

4年前 评论
她来听我的演唱会 4年前
皮皮强 3年前

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