還是官方網站靠譜:雖然我的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 查看是否加載成功