iBrand 教程 0.1:Windows + Homestead 5 搭建 Laravel 開發環境
統一開發環境
為了保證在學習和工作過程中避免因為開發環境不一致而導致各種各樣的問題,Laravel 官方為了我們提供了一個完美的開發環境 Laravel Homestead,讓我們無需再本地安裝 PHP,web 服務器或任何服務軟件。
Homestead 可以在任何 Windows、Mac 或 Linux 系統上運行,它包括了 Nginx Web 服務器、PHP 7.1、MySQL、PostgresSQL、Redis、Memcached、Node 以及開發 laravel 應用所需的東西。
Homestead 內置軟件:
- Ubuntu 16.04
- Git
- PHP 7.1
- Nginx
- MySQL
- MariaDB
- Sqlite3
- Postgres
- Composer
- Node (帶有 Yarn、Bower、Grunt 和 Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- ngrok
對於初學者相關的軟件和知識點可能還不太了解,但是無需擔心,在後續的教程中會陸續使用並且會有相應的章節進行詳細的講解。
本次系列教程,我們將使用目前最新的版本 Homestead 5.1.0 + vagrant 2.0.1 + VirtualBox 5.2.6 + Win10 來進行開發環境的搭建。
這套軟件環境在 Win7 上也可以正常使用。
相關的軟件我們已經整理在百度網盤上,有如下軟件:
- Git:對源碼進行版本管理。
- TortoiseGit:對於初學者不熟悉命令時,可以使用該可視化工具代理命令來管理源碼。
- SourceTreeSetup:圖形化 git 管理 + Git Flow 工具
- Xshell:安全的終端管理軟件,通過 SSH 來登錄 Linux 系統。
- VirtualBox: 虛擬機軟件
- Vagrant:創建虛擬化開發環境工具
- homestead-virtualbox5.1.0: Homestead VirtualBox 下的虛擬機文件。
- WinSCP: WinSCP是一個Windows環境下使用SSH的開源圖形化SFTP客戶端。同時支持SCP協議。它的主要功能就是在本地與遠程計算機間安全的復制文件。
- Notepad++: 是 Windows操作系統下的一套比較好用文本編輯器,不僅有語法高亮度顯示,也有語法折疊功能,並且支持宏以及擴充基本功能的外掛模組。
以上軟件可在百度網盤上進行下載,鏈接:https://pan.baidu.com/s/1bqVD5MJ 密碼:4lku
建議安裝先後順序:Git->TortoiseGit->Xshell->SourceTreeSetup->VirtualBox->Vagrant->Homestead
除了 Homestead 外,其他軟件傻瓜式下一步安裝下去即可,一些軟件的使用在後續章節也會做相關介紹。
重要說明:因為篇幅有限,文中牽涉的軟件暫時不會進行詳細的介紹,該文章最終目的是保證初學者按照操作後,能夠成功建立開發環境。 Vagrant 的一些常用命令,可以通過 Google 或百度搜索相關文章。
安裝 Homestead
需要先安裝好 Git,VirtualBox,Vagrant 三個必要軟件。
添加 Homestead Box
在C盤下新建 workspace
文件夾,並且把下載好的 homestead-virtualbox5.1.0.box
文件拷貝到該目錄下,並且右鍵選擇 Git Bash Here
在當前目錄打開命令窗口。
通過 vagrant box add
命令來完成 Homestead box
的添加
$ vagrant --version
# Vagrant 2.0.1 查看 vagrant 版本,表示 vagrant 已經正常安裝
$ vagrant box add laravel/homestead homestead-virtualbox5.1.0.box
執行結果如下圖所示:
配置 Homestead
執行如下命令:
$ git clone https://github.com/laravel/homestead.git
$ cd homestead
$ bash init.sh
執行結果如下圖所示:
執行完成後會生成 Homestead.yaml
文件,使用 Nodepad++ 打開該配置文件,相關配置的作用已經通過 # +文字的方式進行了說明
,如下所示:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
# 虛擬機配置,包含了IP地址,內存,cpu,以及驅動類型(virtualbox)
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
# ssh 密鑰文件,用來直接登錄虛擬主機,後面也會用到此密鑰,在後面從 Github 拉取源碼時會用到
folders:
- map: ~/code
to: /home/vagrant/code
# 文件映射目錄,通過該配置會把 Windows 系統下的文件自動同步到虛擬機上。`~/code` 代表當前系統用戶目錄下的 `code` 目錄,如示例中系統的路徑就是`C:\Users\32780\code`,`32780`是當前登錄系統的用戶名稱。
sites:
- map: homestead.test
to: /home/vagrant/code/public
# 站點配置,會自動生成 Laravel 的 nginx 虛擬主機文件。
databases:
- homestead
# 數據庫配置,在後續的過程中不是很常用
在最後我們為了實現一個簡單的 hello world
,請改為如下配置:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: C:/workspace/code
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code
databases:
- homestead
生成 SSH key
在啟動 Homestead 虛擬主機前我們需要生成 SSH key,執行如下命令:
$ ssh-keygen -t rsa -C "[email protected]" #請替換成你自己的郵箱
# Generating public/private rsa key pair...
# 三次回車即可生成 ssh key
啟動 Homestead 虛擬主機
執行 vagrant up
前還需要再做一點小改動,才能保證正常啟動。
打開 C:\Users\32780\.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead
目錄
請把 32780 替換成你目前登錄 windows 系統的用戶名
兩個改動:
- 把文件夾
0
改成當前 Homestead 的版本號5.1.0
- 添加 metadata_url 文件,內容只添加
https://app.vagrantup.com/laravel/boxes/homestead
即可,不要存在任何多余的空格字符。
接下來在 C:\workspace\homestead
目錄下執行 vagrant up
啟動虛擬主機。
Hello World
添加 index.html
在 C:\workspace\code
目錄下添加 index.html
文件,內容只要一個簡單的 hello world
即可。創建成功後,文件會自動同步到Homestead
虛擬主機上。
添加 hosts
用 Nodepad++ 打開 C:\Windows\System32\drivers\etc\hosts
文件,添加如下代碼:
192.168.10.10 homestead.test
只差一步
瀏覽器輸入 http://homestead.test
Hello Laravel
接下來把 Laravel 部署到虛擬機中去,就跟完成 hello world 一樣,會稍微復雜一點點。
下載源碼
教程中的示例源碼我們放在了 github 上,地址:https://github.com/ibrandcc/a...
在 c:\workspace
目錄下右鍵 Git Bash Here
,打開命令窗口,執行如下代碼來 clone
源碼。
git clone https://github.com/ibrandcc/api-tutorial-source.git
執行完畢後會多出一個 api-tutorial-source
目錄。
配置 Homestead.yaml
新增文件同步目錄
在 folders:
下添加如下代碼
- map: C:/workspace/api-tutorial-source
to: /mnt/www/api.ibrand.test
把源碼目錄映射同步到虛擬主機上的 /mnt/www/api.ibrand.test
目錄下。
增加虛擬主機
在 sites:
下添加如下代碼
- map: api.ibrand.test
to: /mnt/www/api.ibrand.test/public
請註意文件中的空白處必須是空格鍵打出來的空格,不可用 Tab 鍵。
添加完成後,Homestead.yaml
文件內容如下:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: C:/workspace/code
to: /home/vagrant/code
- map: C:/workspace/api-tutorial-source
to: /mnt/www/api.ibrand.test
sites:
- map: homestead.test
to: /home/vagrant/code
- map: api.ibrand.test
to: /mnt/www/api.ibrand.test/public
databases:
- homestead
重載 Homestead.yaml
在更改後,需要通過 vagrant reload --provision
命令重啟虛擬主機並且重載 Homestead.yaml
中的配置信息。
配置 Xshell 進入虛擬機
啟動之前安裝的 Xshell 軟件
點擊新建
,添加新的會話配置
- 名稱:homestead
- 主機:192.168.10.10
點擊左側的 用戶身份驗證
,用戶名和密碼都輸入:vagrant
點擊確定按鈕,保存設置。
點擊連接按鈕,進行會話連接,第一次連接會彈出如下提示框,選擇接受並保存
操作完成後,會成功登入虛擬機,登入成功後執行 sudo bash
命令切換到 root
賬號
安裝 Laravel
$ cd /mnt/www/api.ibrand.test/
$ composer install
$ cp .env.example .env
$ php artisan key:generate
添加 hosts
用 Nodepad++ 打開 C:\Windows\System32\drivers\etc\hosts
文件,添加如下代碼:
192.168.10.10 api.ibrand.test
最後一步
瀏覽器輸入 http://api.ibrand.test
總結
過程稍微有點復雜,但是搭建好這個環境可以避免後續再開發過程中的很多問題,特別是開發完成後部署到生產服務器,幾乎是不會有兼容性的問題。這一點在 iBrand 產品各個客戶的生產環境上已經得到驗證,而且這也是 Laravel 官方推薦的開發方式,所以值得大家去掌握。
對於剛入門的初學者來說可能不會用 vagrant ,也不懂其中的原理,因為篇幅原因沒辦法對所有的細節說明到位,只需要暫時知道出現的命令的作用和意義,更多的用法可以通過自己的探索去學習掌握,而且後續教程中也會慢慢講到更多的知識點。
iBrand 教程 0.1:Windows + Homestead 5 搭建 Laravel 開發環境