[原創]Homestead 開發環境安裝筆記
Vagrant 安裝 Homestead 筆記
參考文章:
1. 預先準備
命令列 說明 vagrant init 初始化 vagrant vagrant up 啟動 vagrant vagrant halt 關閉 vagrant vagrant ssh 通過 SSH 登入 vagrant(需要先啟動 vagrant) vagrant provision 重新應用更改 vagrant 配置 vagrant destroy 刪除 vagrant
Git 360軟體管家
-
composer config -g repo.packagist composer https://packagist.phpcomposer.com #使用國內源 composer global require hirak/prestissimo #使composer並行安裝包
2. 安裝Box
安裝Box主要有3種方式
從 Vagrant Cloud 線上安裝
vagrant box add laravel/homestead
國內網路環境不大容易崩.. 牆內不推薦
從指定url地址安裝(略)
本地資料夾安裝
先輸入
vagrant box add laravel/homestead
laravel-homestead-6.1.0.box
(自行重新命名)注意 所在目錄必須 沒有 中文名, 否則一定會失敗!!!!
快速安裝:
vagrant box add "laravel/homestead-6.1.0" ./laravel-homestead-6.1.0.box
或者是建立一個
metadata.json
檔案(與laravel-homestead-6.1.0.box
同一目錄 ), 內容為{ "name": "laravel/homestead"
執行新增命令
vagrant box add metadata.json
檢視當前已安裝box列表
vagrant box list
(安裝成功後
metadata.json
及laravel-homestead-6.1.0.box
可刪除)
3. 安裝Homestead
git clone https://github.com/laravel/homestead.git Homestead
下載Homestead控制指令碼cd Homestead && git checkout v7.7.0
使用穩定版本bash init.sh
或init.bat
建立Homestead.yaml
配置檔案
會生成一下三個檔案
- Homestead.yaml - 主要配置資訊檔案,我們可以在此檔案中配置 Homestead 的站點和資料庫等資訊;
- after.sh - 每一次 Homestead 盒子重置後(provision)會呼叫的 shell 指令碼檔案;
- aliases - 每一次 Homestead 盒子重置後(provision),會被替換至虛擬機器的
~/.bash_aliases
檔案中,aliases
裡可以放一些快捷命令的定義
- 修改
Homestead.yaml
配置檔案
引數說明
虛擬機器配置
ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox # 虛擬機器提供型別
SSH金鑰登陸配置
- authorize
主機上的公鑰檔案, 自動複製到虛擬機器的
/home/vagrant/.ssh/authorized_keys
檔案中, 用於 SSH免密登陸
- keys
主機的SSH私鑰檔案, 自動複製到虛擬機器的
/home/vagrant/.ssh/
目錄中, 使虛擬機器能共享主機上的金鑰檔案, 具備等同於主機的身份認證(eg. 主機和虛擬機器用同一個ssh私鑰檔案認證github)建立金鑰對
ssh-keygen -t rsa -C "[email protected]"
- provider
指定虛擬機器: virtualbox, vmware_fusion, vmware_workstation, parallels
folders
指定共享資料夾, 有多種共享方式: 預設, nfs, rsync 等
注意不要瞎寫, 防止覆蓋一些重要目錄..比如
/home/vagrant
. 18-08-02 被坑了1個小時sites
配置域名對映, 可同時配置多個域名對映.
記得在主機的 hosts 裡新增
192.168.10.10 測試域名
databases
配置資料庫, 主機若需訪問資料庫則連線
127.0.0.1
和埠33060
(mysql) 或54320
(Postgres), 賬號密碼分別是homestead
/secret
. 虛擬機器中訪問仍然使用 預設的3306
或5432
埠.variables
配置環境變數
ports
配置埠對映, 預設埠對映:
SSH: 2222 → 傳送到 22
HTTP: 8000 → 傳送到 80
HTTPS: 44300 → 傳送到 443
MySQL: 33060 → 傳送到 3306
Postgres: 54320 → 傳送到 5432
Mailhog: 8025 → 傳送到 8025
MongoDB: 27017 -> 27017
Spark: 4040 -> 4040
引數修改後若要重新生效需執行
vagrant reload --provision
或vagrant provision && vagrant reload
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
folders:
- map: E:\Codes\LearnLaravel
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code/public
# php: "7.1" # 指定php版本
# schedule: true # 配置cron排程, 對站點使用 schedule:run 命令
# params: # 新增Nginx fastcgi_param 值
# type: laravel # 指定站點型別(預設是laravel), 支援 apache, proxy, silverstripe, statamic, symfony2, symfony4
# - key: FOO
# value: BAR
databases:
- homestead
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
(可選)修改對應虛擬機器名(建立多個時防止命名衝突)
config.vm.provider "virtualbox" do |vb| vb.name = "your-specific-project-name" end
vagrant up
啟動
第一次啟動時,Vagrant 會做以下這幾件事情:
- 以匯入的 Homestead 虛擬機器盒子為模板,新建一臺虛擬機器;
- 並按照
Homestead.yaml
裡的配置資訊,對這臺新建的虛擬機器進行配置;- 配置完成後啟動虛擬機器。
vagrant destroy --force
可以刪除虛擬機器
vagrant global-status
可檢視當前系統中所有通過vagrant
建立的虛擬機器
- SSH連線虛擬主機
vagrant ssh