还是官方网站靠谱:虽然我的Homestead是Centos+ubuntu19.04的环境,官网只给了16.04和18.04的安装教程,但是用18.04的教程安装是OK的。根据自己选择的系统和环境去安装。
一、首先我参照文档去测试Homestead环境自动安装。
1、需要在 Homestead.yaml 中加入 mongodb: true
,其实就是调起 homestead 下面的 ./scripts/install-mongo.sh 脚本而已。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
# 使用 MongoDB
mongodb: true
authorize: ~/.ssh/id_rsa.pub
2、重新加载配置【由于源的问题缺少mongodb组件,报错,最后异常退出】
vagrant reload --provision
中间出现以下错误信息:
然后我就去google,就去添加相关mongodb的源,依然报错,算了,去查找官方文档吧:
homestead-7: Running: script: Creating MySQL Database: homestead
==> homestead-7: Running provisioner: shell...
homestead-7: Running: script: Creating Postgres Database: homestead
==> homestead-7: Running provisioner: shell...
homestead-7: Running: script: Creating Mongo Database: homestead
homestead-7: /tmp/vagrant-shell: line 3: mongo: command not found
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
二、其实安装Mongodb不区分是docker还是虚拟机或者使用homestead之类的。
不管你是 vagrant reload --provision 调用 install-mongodb.sh 自动安装,还是 vagrant ssh 进去之后,手动安装。都一个样儿。
官方安装流程:
1、导入包管理系统使用的公钥,正常返回ok,如果出现问题查看1.1,反之,进行第2步。
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
1.1 如果第1步出现 gnupg 未安装的提示则:
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
2、为MongoDB创建一个列表文件。
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
3、更新源
sudo apt-get update
4、安装Mongodb
sudo apt-get install -y mongodb-org
5、启动Mongodb
sudo mongod //启动命令,如果提示没有/data/db ,就 mkdir -p /data/db,并chmod
sudo service mongod start
sudo service mongod start/restart/status/stop
如图所示:ok,也不会报错。
说明还是官方的源比较好,哈哈。
三、安装PHP的Mongodb扩展
PHP官方手册 :
sudo pecl install mongodb //每个php版本都有自己的pecl
php.ini 将扩展添加在cli和fpm下的phpini
extension=mongodb.so
php -i | grep php.ini //定位配置文件
sudo service php7.3-fpm restart //重启加载
php -m 或者 php -m | grep mongodb 查看是否加载成功