# 後端開發環境Homestead
啟動 Homestead 之前,確保 VirtualBox 、Vagrant、Git 軟體己安裝。
## 安裝 laravel/homestead
vagrant box add laravel/homestead
如果這個命令失敗了,請確保你安裝的是最新版的 Vagrant(可能被牆)。
1. 請下載 virtual.box自定義安裝:
2. vagrant box add laravel/homestead ~/目錄/virtualbox.box
被牆後後,請去Vagrant 官網下載:
https://vagrantcloud.com/laravel/boxes/homestead/versions/9.3.0/providers/virtualbox.box
如果執行自定義下載的檔案安裝,報如下錯:
check your Homestead.yaml file, the path to your private key does not exist.
解決辦法:
1 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 2 3 eval "$(ssh-agent -s)" 4 5 ssh-add -K ~/.ssh/id_rsa
cd ~ git clone https://github.com/laravel/homestead.git ~/Homestead
這樣 Homestead Box 就可以作為你的所有 Laravel 專案的主機
切到最新的穩定版本
cd ~/Homestead # 或者期望的發行版本... git checkout v9.4.0
在 Homestead 目錄中使用 bash init.sh 命令來建立 Homestead.yaml 配置檔案。 Homestead.yaml 檔案將被放在 Homestead 目錄中
# Mac / Linux... bash init.sh
## 配置 Homestead
開啟 ~/Homestead/Homestead.yaml
# 配置共享資料夾 (你電腦上的目錄對映到虛擬機器上) folders: - map: ~/website/bbs to: /home/vagrant/Code/bbs # 配置 Nginx 站點 sites: - map: bbs.test to: /home/vagrant/code/bbs/public
## 啟動 Vagrant 盒子
配置好 Homestead.yaml 檔案後,在 Homestead 目錄下執行 vagrant up 命令,如果你是通過先下載 Homestead Vagrant 盒子再手動新增的方式安裝的話,此時先不要執行這個命令,而是需要進入 ~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead 目錄(以 MacOS 為例,Windows 對應的路徑應該是 C:/Users/User/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead,其中 User 對應你的使用者名稱),新增一個 metadata_url 檔案,並初始化檔案內容如下(如果已有則忽略):
https://vagrantcloud.com/laravel/homestead
接下來,將該目錄下手動新增到 Vagrant 盒子目錄 0 重新命名此次安裝盒子版本號 9.4.0(可執行命令 vagrant box list 可得laravel/homestead virtualbox版本號),再回到 Homestead 目錄執行 vagrant up 命令。Vagrant 將會啟動虛擬機器並自動配置共享資料夾以及 Nginx 站點,初次啟動需要花費一點時間進行初始化。
當然為了關閉檢測自動更新,配置 Homestead/script/homestead.rb 檔案。
// 新增 config.vm.box_check_update = false
## 多版本 PHP
Homestead 6 在同一個虛擬機器上引入了對多個 PHP 版本的支援。你可以在你的 Homestead.yaml 檔案中指定要用於給定站點的 PHP 版本
sites: - map: homestead.test to: /home/vagrant/code/xxx/public php: "7.1"
## PHP版本管理工具
homestead 中自帶了版本管理工具 update-alternatives
#進入 ssh vagrant ssh #檢視所有 php 版本和當前版本 update-alternatives --display php #列出當前 php 所有版本和編號,輸入編號,切換到執行的版本 update-alternatives --config php
## Homestead常用命令
> 將在Homestead目錄下進行
1. 更新虛擬機器上的 Nginx 配置(當更改了 sites 選項)
vagrant reload --provision` # 或者 vagrant provision && vagrant reload
2. 刪除虛擬機器
vagrant destroy --force
3. 啟動
vagrant up
4. 進入系統
vagrant ssh