本文作者:陳進堅
個人博客:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
簡書:https://www.jianshu.com/u/8ba9ac5706b6
聯繫方式:[email protected]
下載安裝包
本文所有的程序已經上傳到百度雲盤,如有失效請聯繫作者進行更新下載鏈接
鏈接:https://pan.baidu.com/s/1ltcH3IABqDiEZz0aC_0Zsw
提取碼:609b
安裝VirtualBox
VirtualBox
是 Oracle
公司的開源虛擬機軟件,安裝包下載完成之後,雙擊安裝包進行安裝,之後按照提示操作一步一步進行安裝即可。
安裝Vagrant
Vagran
是用來管理虛擬機的工具,支持當前主流的虛擬機系統如 VirtualBox
、VMware
、AWS
等。Vagrant
的主要作用是提供一個可配置、可移植和複用的軟件環境。安裝包下載完成之後,雙擊安裝包進行安裝,之後按照提示操作一步一步進行安裝即可。
安裝Git
Git
是一款非常流行的代碼版本控制工具。安裝包下載完成之後,雙擊安裝包進行安裝,之後按照提示操作一步一步進行安裝即可。
安裝 Homestead
說明
Homestead
腳本使用 Ruby 和 Shell 腳本編寫而成。原理是對Vagrantfile
文件做定製。將從 ~/Homestead/Homestead.yaml
讀取的配置信息,在provision
時,解析爲 Vagrant
命令並進行對虛擬機的配置。Homestead
腳本的作用在於,提供了極其簡單易用的接口,使我們只需要通過傻瓜化配置,即可完成複雜的任務。
homestead.box
虛擬機盒子是提前打包好的 Vagrant Box 虛擬機盒子,裏面預裝了 Nginx Web 服務器、PHP 7、MySQL、Postgres、Redis、Memcached、Node
,以及所有你在使用 Laravel
開發時所需要用到的各種軟件。爲了學習的流暢性,我們接下來將會使用定製版本的虛擬機盒子,你不需要太擔心版本的事情。由於國內的網絡環境原因,我們特意爲大家定製了適用於國情的 Homestead 安裝包,該安裝包提供了以下內容:
Composer 加速
,配置了 Composer 中國全量鏡像 支持;- 默認集成
Heroku
工具; - 默認集成
Yarn
,併爲Yarn
加了淘寶鏡像的加速; - 使用
CNPM
對NPM
進行加速。
安裝
1.lc-homestead-6.4.1-2019072300.zip
文件下載完成後解壓,可以看到有兩個文件
- virtualbox.box(教程定製化過的 Homestead 盒子)
- metadata.json(盒子的導入配置文件)
在解壓目錄(非中文)中 lc-homestead-6.4.1-2019072300
運行以下命令導入 Box:
vagrant box add metadata.json
2.進入用戶根目錄
cd C:\Users\你的用戶名
使用 Git 下載定製版的 Homestead
git clone https://git.coding.net/summerblue/homestead.git Homestead
使用 Git
檢出我們需要的 Homestead
版本
cd ~/Homestead
git checkout v7.8.0
初始化 Homestead
bash init.sh
運行以上命令後,會在 ~/Homestead
目錄下生成以下三個文件:
- Homestead.yaml - 主要配置信息文件,我們可以在此文件中配置 Homestead 的站點和數據庫等信息;
- after.sh - 每一次 Homestead 盒子重置後(provision)會調用的 shell 腳本文件;
- aliases - 每一次 Homestead 盒子重置後(provision),會被替換至虛擬機的
~/.bash_aliases
文件中,aliases
裏可以放一些快捷命令的定義。
3.生成SSH Key
,如果你之前已經生成過,可以直接跳過這一步;
檢測是否已經生成過SSH Key
ls -al ~/.ssh
如果存在 id_rsa
和 id_rsa.pub
的話,請跳過以下生成 SSH Key
的步驟
生成SSH Key
,替換掉下面的郵箱
ssh-keygen -t rsa -C "[email protected]"
接下來一路按回車選擇默認即可。
4.配置站點
創建Code
目錄,默認情況下將會在該文件夾下放置我們所有的 Laravel
項目,Homestead 會把該文件夾下的項目自動映射到虛擬機的 /home/vagrant/Code
文件夾上。當然,我們也可以通過修改C:\Users\用戶名\Homestead\Homestead.yaml
文件中folders
欄目將本地目錄與虛擬機目錄綁定,一旦本地文件有變化,虛擬機的文件也會自動同步修改。
主機裏直接訪問虛擬機站點,必須通過綁定 hosts
來實現。接下來我們利用 hosts
文件綁定 homestead.test
到虛擬機 IP 192.168.10.10
上。hosts
文件的完整路徑爲 C:\Windows\System32\Drivers\etc\hosts
,在 hosts
文件的最後面加入以下一行
192.168.10.10 homestead.test
啓動Homestead
cd C:\Users\用戶名\Homestead && vagrant up
登錄Homestead
vagrant ssh
登錄成功後,你能看到類似於如下圖的界面,現在我們在該終端界面中輸入的所有命令都將運行在 Homestead 虛擬機上
退出和關閉Homestead
退出虛擬機
exit
關閉虛擬機
vagrant halt
通過工具連接MySql
可以使用Navicat
等可視化工具連接mysql
,mysql
的默認配置如下
IP:192.168.10.10
端口:3306
用戶名:homestead
密碼:secret
通過工具連接命令行
上面說過可以通過SSH Key
來連接命令行,由於系統是ubuntu
,所以也可以通過xshell
等工具連接命令行。默認配置如下
IP:192.168.10.10
用戶名:vagrant
密碼:vagrant
修改Composer
全量鏡像
按照Laravel China 社區文章《Laravel China鏡像完成歷史使命,將於兩個月後停用》,我們需要修改Composer
全量鏡像爲阿里雲 Composer 全量鏡像,否則Composer
會報錯。
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
安裝Laravel
通過 Composer 安裝 Laravel
安裝器:
composer global require "laravel/installer"
創建 Laravel
應用
創建code
目錄,這裏創建一個名爲blog
的應用
mkdir code
cd code
laravel new blog
在windows
環境下創建應用,使用5.7版本
composer create-project laravel/laravel blog "5.7.*"
添加站點
在Windows
環境的C:\Users\用戶名\Homestead\Homestead.yaml
文件中sites
欄目添加
sites:
- map: homestead.test
to: /home/vagrant/code/blog/public
然後在 hosts
文件的最後面加入以下一行
192.168.10.10 homestead.test
運行serve腳本
serve homestead.test /home/vagrant/code/blog
退出Homestead
然後重啓虛擬機讓上面的配置在homestead
中生效
exit
vagrant reload --provision
打開瀏覽器訪問http://homestead.test/
即可
站點的配置文件會自動創建在/etc/nginx/sites-available/
目錄
PHP管理
-
切換版本
進入目錄
/etc/php
可以看到php
的各個版本vagrant@homestead:/etc/php$ ls 5.6 7.0 7.1 7.2 7.3
要切換版本只需在在
Windows
環境的C:\Users\用戶名\Homestead\Homestead.yaml
文件中sites
欄目指定版本然後重啓虛擬機即可,所有站點只能指定相同的版本,否則會報錯- map: wd.com to: /home/vagrant/code/qianlong_sys php: "7.1" - map: admin.kd.do to: /home/vagrant/code/yii2_admin/backend/web php: "7.1"
-
重啓
命令根據版本做修改
/etc/init.d/php-fpm5.6 restart
-
Nginx管理
/etc/init.d/nginx restart