Homestead Win
后盾人 www.houdunren.com 作者:向軍大叔
Laravel 致力于讓整個 PHP 開發(fā)體驗(yàn)變得愉快钱烟, 包括你的本地開發(fā)環(huán)境窥摄。 Vagrant 提供了一種簡單夭咬,優(yōu)雅的方式來管理和配置虛擬機(jī)恭取。
Laravel Homestead 是一個官方預(yù)封裝的 Vagrant box盹牧,它為你提供了一個完美的開發(fā)環(huán)境钞瀑,而無需在本地機(jī)器安裝 PHP 沈撞、Web 服務(wù)器和其他服務(wù)器軟件。不用擔(dān)心會搞亂你的操作系統(tǒng)雕什!Vagrant boxes 是一次性的缠俺。如果出現(xiàn)問題,你可以在幾分鐘內(nèi)銷毀并創(chuàng)建 Box!
Homestead 可以運(yùn)行在任何 Windows贷岸,Mac壹士,或 Linux 系統(tǒng),它包括了 Nginx web 服務(wù)器偿警, PHP 7.2躏救,PHP 7.1,PHP 7.0螟蒸,PHP 5.6盒使, MySQL,PostgreSQL七嫌,Redis少办,Memcached, Node诵原,以及開發(fā) Laravel 應(yīng)用程序所需要的東西英妓。
以下代碼都是在windows 使用 git for windows 命令行工具操作的
VirtualBox
https://www.virtualbox.org/
VirtualBox 是 Oracle 公司的開源虛擬機(jī)軟件。VirtualBox 號稱是最強(qiáng)的免費(fèi)虛擬機(jī)軟件皮假,它不僅功能齊全鞋拟,而且性能也很優(yōu)異!VirtualBox 支持大部分流行的系統(tǒng)惹资,如:Mac, Windows, Linux 等贺纲。
Vagrant
Vagrant by HashiCorp
Vagrant 是用來管理虛擬機(jī)的工具,支持當(dāng)前主流的虛擬機(jī)系統(tǒng)如 VirtualBox褪测、VMware猴誊、AWS 等。Vagrant 的主要作用是提供一個可配置侮措、可移植和復(fù)用的軟件環(huán)境懈叹。Vagrant 讓你通過編寫一個 Vagrantfile 文件來控制虛擬機(jī)的啟動、虛擬機(jī)網(wǎng)絡(luò)環(huán)境的配置分扎、虛擬機(jī)與主機(jī)間的文件共享澄成,以及啟動后自動執(zhí)行一些配置腳本,如自動執(zhí)行一個 Shell Script 來安裝一些必備的開發(fā)工具,如安裝配置MySQL墨状、PHP卫漫,甚至是自動配置 Nginx 站點(diǎn)。這意味著肾砂,在一個多人開發(fā)的項(xiàng)目中列赎,你只需要同步 Vagrantfile 文件,就可以保證參與項(xiàng)目的每個人各自的機(jī)器上擁有一致的開發(fā)環(huán)境镐确。
可以在下面網(wǎng)站上搜索需要的vagrant box
https://app.vagrantup.com/boxes/search
Homestead box
Homestead是一個官方預(yù)封裝的 Vagrant box包吝,它為你提供了一個完美的開發(fā)環(huán)境,而無需在本地機(jī)器安裝 PHP 源葫、Web 服務(wù)器和其他服務(wù)器軟件诗越。不用擔(dān)心會搞亂你的操作系統(tǒng)!Vagrant boxes 是一次性的臼氨。如果出現(xiàn)問題掺喻,你可以在幾分鐘內(nèi)銷毀并創(chuàng)建 Box!
內(nèi)置軟件:Ubuntu 16.04芭届、Git储矩、PHP 7.2、PHP 7.1褂乍、Nginx持隧、Apache (Optional)、MySQL ……
在線安裝 Homestead Vagrant Box逃片,這樣安裝下載會非常慢屡拨,可以使用第二種本地文件安裝方式
vagrant box add laravel/homestead
本地文件安裝
先下載離線 homestead.box
https://pan.baidu.com/s/1-obdVwlryRdtVV-8-iD56A 然后執(zhí)行
vagrant box add laravel/homestead d:/code/homestead.box
安裝的box 鏡像儲存的位置:以我電腦為例在 ~/.vagrant.d/boxes
安裝 Homestead 管理腳本
#clone管理腳本
git clone https://github.com/laravel/homestead.git ~/Homestead
cd ~/Homestead
#因?yàn)閙aster不穩(wěn)定所以切到穩(wěn)定tag
git checkout v7.3.0
#創(chuàng)建 Homestead.yaml 配置文件
./init.bat
如果是本地安裝的,那么 homestead.box 版本為0褥实,所以需要修改下面步驟生成的配置文件~/Homestead/scripts/homestead.rb
(上一步安裝的homestead
目錄里)以下內(nèi)容
config.vm.box_version = settings["version"] ||= ">= 0"
SSH 秘鑰登錄
生成 key
ssh-keygen -t rsa -C "2300071698@qq.com"
#后面一真按enter鍵呀狼,設(shè)置密碼
用于實(shí)現(xiàn) SSH 免密碼登錄
修改 Homestead.yaml 文件以下內(nèi)容:
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
配置共享文件夾
Homestead.yaml 文件的 folders 屬性里列出所有與 Homestead 環(huán)境共享的文件夾。這些文件夾中的文件若有變更损离,它們會保持本地機(jī)器與 Homestead 環(huán)境之間同步哥艇。你可以根據(jù)需要配置多個共享文件夾:
folders:
- map: d:/code
to: /home/vagrant/Code
# map 對應(yīng)的是我們本機(jī)的文件夾
* to 對應(yīng)的是 Homestead 上的文件夾
vagrant命令
#啟動 如果加上 --provision 選項(xiàng)那么添加的新站點(diǎn)會發(fā)布到虛擬機(jī)上。
cd ~/Homestead
vagrant up
#關(guān)閉
vagrant halt
#通過 SSH 登錄 vagrant(需要先啟動 vagrant)
vagrant ssh
#查看目前安裝的box列表
vagrant box list
#刪除box鏡像
vagrant box remove laravel/homestead
#查看當(dāng)前 Homestead 虛擬機(jī)的狀態(tài)僻澎。
vagrant status
Win10安裝錯誤
執(zhí)行 vagrant up
開啟虛擬機(jī)出現(xiàn)以下錯誤
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
...
進(jìn)入你的BIOS貌踏,然后將virtualization(CPU虛擬化)設(shè)置為enable即可
BIOS界面:Configuratio > Intel Virtual Technology > Enabled
通過 SSH 連接
這樣就可以登錄的 homestead 虛擬主機(jī)了,此地可以查看上面定義的本地目錄與虛擬機(jī)目錄同步的情況
vagrant ssh
數(shù)據(jù)庫
- 要從主機(jī)的數(shù)據(jù)庫客戶端連接到 MySQL窟勃,就連接到 127.0.0.1和端口 33060 (MySQL) 祖乳。賬號密碼分別是 homestead/secret。
- PHP程序連接(虛擬機(jī)中連接)端口為 3306
全局命令
Git for Windows環(huán)境中使用
如果我們想在任何目錄都可以執(zhí)行 vagrant 命令秉氧,需要進(jìn)行以下設(shè)置
修改 ~/.bash_profile 文件內(nèi)容眷昆,這種設(shè)置只在 git for windows
軟件中使用
function homestead() {
( cd ~/Homestead && vagrant $* )
}
這樣我們就可以使用 homestead up 等方式執(zhí)行了。
設(shè)置Windows全局命令
@echo off
set cwd=%cd%
set homesteadVagrant=C:\Users\xj\Homestead
cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%
set cwd=
set homesteadVagrant=
你需要將腳本中實(shí)例路徑 C:\Homestead 調(diào)整為 Homestead 實(shí)際安裝路徑。創(chuàng)建文件之后亚斋,添加文件路徑到 PATH垦藏,這樣你就可以在系統(tǒng)的任意位置運(yùn)行 homestead up 或 homestead ssh 命令了。
如果想讓計(jì)算機(jī)啟動時執(zhí)行 homestead 伞访,在開始菜單->所有程序->啟動
文件夾中設(shè)置 homestead.bat內(nèi)容如下掂骏。
homestead up
開機(jī)自啟
在 開始菜單>啟動
文件夾中創(chuàng)建 homestead.bat
文件內(nèi)容如下
homestead up
要在360或騰訊電腦管家中的啟動項(xiàng)中不要禁用。
響應(yīng)緩慢
解決WINDOS系統(tǒng)下Homestead運(yùn)行緩慢的問題
一定要先備份,下面的操作有沒有后遺癥,暫時不確定
首先厚掷,命令行進(jìn)入 Homestead 啟動 vagrant
> cd ~/Homestead && vagrant up
然后運(yùn)行安裝命令(如果下載失敗可能被墻了)
$ vagrant plugin install vagrant-winnfsd
修改文件1:homestead/scripts/homestead.rb
查找此段代碼(可能略有不同)弟灼,替換為以下內(nèi)容
if settings.include? 'folders'
settings["folders"].sort! { |a,b| a["map"].length <=> b["map"].length }
settings["folders"].each do |folder|
config.vm.synced_folder folder["map"], folder["to"],
id: folder["map"],
:nfs => true,
:mount_options => ['nolock,vers=3,udp,noatime']
end
end
文件2:Homestead.yaml
folders:
- map: ~/Code
to: /home/vagrant/Code
type: nfs
重啟 Homestead 使配置文件生效,大功告成冒黑。
Homestead Mac
后盾人 wwwhoudunren.com 作者:向軍大叔
Laravel 致力于讓整個 PHP 開發(fā)體驗(yàn)變得愉快田绑, 包括你的本地開發(fā)環(huán)境。 Vagrant 提供了一種簡單抡爹,優(yōu)雅的方式來管理和配置虛擬機(jī)掩驱。
Laravel Homestead 是一個官方預(yù)封裝的 Vagrant box,它為你提供了一個完美的開發(fā)環(huán)境冬竟,而無需在本地機(jī)器安裝 PHP 欧穴、Web 服務(wù)器和其他服務(wù)器軟件。不用擔(dān)心會搞亂你的操作系統(tǒng)泵殴!Vagrant boxes 是一次性的涮帘。如果出現(xiàn)問題,你可以在幾分鐘內(nèi)銷毀并創(chuàng)建 Box!
Homestead 可以運(yùn)行在任何 Windows笑诅,Mac调缨,或 Linux 系統(tǒng),它包括了 Nginx web 服務(wù)器吆你, PHP 7.2弦叶,PHP 7.1,PHP 7.0妇多,PHP 5.6伤哺, MySQL,PostgreSQL砌梆,Redis默责,Memcached, Node咸包,以及開發(fā) Laravel 應(yīng)用程序所需要的東西桃序。
VirtualBox
https://www.virtualbox.org/
VirtualBox 是 Oracle 公司的開源虛擬機(jī)軟件。VirtualBox 號稱是最強(qiáng)的免費(fèi)虛擬機(jī)軟件烂瘫,它不僅功能齊全媒熊,而且性能也很優(yōu)異奇适!VirtualBox 支持大部分流行的系統(tǒng),如:Mac, Windows, Linux 等芦鳍。
Vagrant
Vagrant by HashiCorp
Vagrant 是用來管理虛擬機(jī)的工具嚷往,支持當(dāng)前主流的虛擬機(jī)系統(tǒng)如 VirtualBox、VMware柠衅、AWS 等皮仁。Vagrant 的主要作用是提供一個可配置、可移植和復(fù)用的軟件環(huán)境菲宴。Vagrant 讓你通過編寫一個 Vagrantfile 文件來控制虛擬機(jī)的啟動贷祈、虛擬機(jī)網(wǎng)絡(luò)環(huán)境的配置、虛擬機(jī)與主機(jī)間的文件共享喝峦,以及啟動后自動執(zhí)行一些配置腳本势誊,如自動執(zhí)行一個 Shell Script 來安裝一些必備的開發(fā)工具,如安裝配置MySQL谣蠢、PHP粟耻,甚至是自動配置 Nginx 站點(diǎn)。這意味著眉踱,在一個多人開發(fā)的項(xiàng)目中挤忙,你只需要同步 Vagrantfile 文件,就可以保證參與項(xiàng)目的每個人各自的機(jī)器上擁有一致的開發(fā)環(huán)境勋锤。
可以在下面網(wǎng)站上搜索需要的vagrant box
https://app.vagrantup.com/boxes/search
Homestead box
Homestead是一個官方預(yù)封裝的 Vagrant box饭玲,它為你提供了一個完美的開發(fā)環(huán)境,而無需在本地機(jī)器安裝 PHP 叁执、Web 服務(wù)器和其他服務(wù)器軟件。不用擔(dān)心會搞亂你的操作系統(tǒng)矮冬!Vagrant boxes 是一次性的谈宛。如果出現(xiàn)問題,你可以在幾分鐘內(nèi)銷毀并創(chuàng)建 Box!
內(nèi)置軟件:Ubuntu 16.04胎署、Git吆录、PHP 7.2、PHP 7.1琼牧、Nginx恢筝、Apache (Optional)、MySQL ……
在線安裝 Homestead Vagrant Box巨坊,這樣安裝下載會非常慢撬槽,可以使用第二種本地文件安裝方式
vagrant box add laravel/homestead
本地文件安裝
先下載 離線 homestead.box ,然后執(zhí)行
vagrant box add laravel/homestead ~/Desktop/homesteadvirtual5.2.box
安裝 Homestead 管理腳本
#clone管理腳本
git clone https://github.com/laravel/homestead.git ~/Homestead
cd Homestead
#因?yàn)閙aster不穩(wěn)定所以切到穩(wěn)定tag
git checkout v7.7.0
#創(chuàng)建 Homestead.yaml 配置文件
bash init.sh
如果是本地安裝的 homestead.box 版本為0趾撵,所以需要修改下面步驟生成的配置文件 /Users/xj/Homestead/scripts/homestead.rb 以下內(nèi)容
config.vm.box_version = settings["version"] ||= ">= 0"
安裝的box 鏡像儲存的位置:以我電腦為例在 /Users/xj/.vagrant.d/boxes
配置共享文件夾
Homestead.yaml 文件的 folders 屬性里列出所有與 Homestead 環(huán)境共享的文件夾侄柔。這些文件夾中的文件若有變更,它們會保持本地機(jī)器與 Homestead 環(huán)境之間同步。你可以根據(jù)需要配置多個共享文件夾:
folders:
- map: ~/Code
to: /home/vagrant/Code
# map 對應(yīng)的是我們本機(jī)的文件夾
* to 對應(yīng)的是 Homestead 上的文件夾
SSH 秘鑰登錄
用于實(shí)現(xiàn) SSH 免密碼登錄
修改 Homestead.yaml 文件以下內(nèi)容:
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
生成 key
ssh-keygen -t rsa -C "2300071698@qq.com"
#后面一真按enter鍵暂题,設(shè)置密碼
vagrant命令
#啟動 如果加上 --provision 選項(xiàng)那么添加的新站點(diǎn)會發(fā)布到虛擬機(jī)上移剪。
cd ~/Homestead && vagrant up
#關(guān)閉
vagrant halt
#通過 SSH 登錄 vagrant(需要先啟動 vagrant)
vagrant ssh
#查看目前安裝的box列表
vagrant box list
#刪除box鏡像
vagrant box remove laravel/homestead
#查看當(dāng)前 Homestead 虛擬機(jī)的狀態(tài)。
vagrant status
通過 SSH 連接
這樣就可以登錄的 homestead 虛擬主機(jī)了薪者,此地可以查看上面定義的本地目錄與虛擬機(jī)目錄同步的情況
vagrant ssh
數(shù)據(jù)庫
- 要從主機(jī)的數(shù)據(jù)庫客戶端連接到 MySQL纵苛,就連接到 127.0.0.1和端口 33060 (MySQL) 。賬號密碼分別是 homestead/secret言津。
- PHP程序連接(虛擬機(jī)中連接)端口為 3306
全局命令
如果我們想在任何目錄都可以執(zhí)行 vagrant 命令赶站,需要進(jìn)行以下設(shè)置
修改 ~/.bash_profile 文件,如果安裝了 zsh 需要修改 ~/.zshrc文件
function homestead() {
( cd ~/Homestead && vagrant $* )
}
這樣我們就可以使用 homestead up 等方式執(zhí)行了