Windows + Homestead 5 搭建 Laravel 開發環境

統一開發環境

爲了保證在學習和工做過程當中避免由於開發環境不一致而致使各類各樣的問題,Laravel 官方爲了咱們提供了一個完美的開發環境 Laravel Homestead,讓咱們無需再本地安裝 PHP,web 服務器或任何服務軟件。php

Homestead 能夠在任何 Windows、Mac 或 Linux 系統上運行,它包括了 Nginx Web 服務器、PHP 7.一、MySQL、PostgresSQL、Redis、Memcached、Node 以及開發 laravel 應用所需的東西。html

Homestead 內置軟件:nginx

  • 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 來進行開發環境的搭建。laravel

這套軟件環境在 Win7 上也能夠正常使用。

相關的軟件咱們已經整理在百度網盤上,有以下軟件:git

  1. Git:對源碼進行版本管理。
  2. TortoiseGit:對於初學者不熟悉命令時,可使用該可視化工具代理命令來管理源碼。
  3. SourceTreeSetup:圖形化 git 管理 + Git Flow 工具
  4. Xshell:安全的終端管理軟件,經過 SSH 來登陸 Linux 系統。
  5. VirtualBox: 虛擬機軟件
  6. Vagrant:建立虛擬化開發環境工具
  7. homestead-virtualbox5.1.0: Homestead VirtualBox 下的虛擬機文件。
  8. WinSCP: WinSCP是一個Windows環境下使用SSH的開源圖形化SFTP客戶端。同時支持SCP協議。它的主要功能就是在本地與遠程計算機間安全的複製文件。
  9. Notepad++: 是 Windows操做系統下的一套比較好用文本編輯器,不只有語法高亮度顯示,也有語法摺疊功能,而且支持宏以及擴充基本功能的外掛模組。

以上軟件可在百度網盤上進行下載,連接:https://pan.baidu.com/s/1bqVD5MJ 密碼:4lkugithub

建議安裝前後順序:Git->TortoiseGit->Xshell->SourceTreeSetup->VirtualBox->Vagrant->Homesteadweb

除了 Homestead 外,其餘軟件傻瓜式下一步安裝下去便可,一些軟件的使用在後續章節也會作相關介紹。shell

重要說明:由於篇幅有限,文中牽涉的軟件暫時不會進行詳細的介紹,該文章最終目的是保證初學者按照操做後,可以成功創建開發環境。 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 "xxxxx@xxxxx.com"  #請替換成你本身的郵箱
# Generating public/private rsa key pair...
# 三次回車便可生成 ssh key

圖片描述

啓動 Homestead 虛擬主機

執行 vagrant up 前還須要再作一點小改動,才能保證正常啓動。

打開 C:\Users\32780\.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead 目錄

請把 32780 替換成你目前登陸 windows 系統的用戶名

兩個改動:

  1. 把文件夾 0 改爲當前 Homestead 的版本號 5.1.0
  2. 添加 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

clipboard.png

執行完畢後會多出一個 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 中的配置信息。

clipboard.png

配置 Xshell 進入虛擬機

啓動以前安裝的 Xshell 軟件

clipboard.png

點擊新建,添加新的會話配置

  • 名稱:homestead
  • 主機:192.168.10.10

clipboard.png

點擊左側的 用戶身份驗證,用戶名和密碼都輸入:vagrant

clipboard.png

點擊肯定按鈕,保存設置。

clipboard.png

點擊鏈接按鈕,進行會話鏈接,第一次鏈接會彈出以下提示框,選擇接受並保存

clipboard.png

操做完成後,會成功登入虛擬機,登入成功後執行 sudo bash 命令切換到 root 帳號

clipboard.png

安裝 Laravel

$ cd /mnt/www/api.ibrand.test/
$ composer install
$ cp .env.example .env
$ php artisan key:generate

clipboard.png

添加 hosts

用 Nodepad++ 打開 C:\Windows\System32\drivers\etc\hosts 文件,添加以下代碼:

192.168.10.10  api.ibrand.test

最後一步

瀏覽器輸入 http://api.ibrand.test

clipboard.png

總結

過程稍微有點複雜,可是搭建好這個環境能夠避免後續再開發過程當中的不少問題,特別是開發完成後部署到生產服務器,幾乎是不會有兼容性的問題。這一點在 iBrand 產品各個客戶的生產環境上已經獲得驗證,並且這也是 Laravel 官方推薦的開發方式,因此值得你們去掌握。

對於剛入門的初學者來講可能不會用 vagrant ,也不懂其中的原理,由於篇幅緣由沒辦法對全部的細節說明到位,只須要暫時知道出現的命令的做用和意義,更多的用法能夠經過本身的探索去學習掌握,並且後續教程中也會慢慢講到更多的知識點。

有任何問題歡迎諮詢 : )

Laravel & VUE & 小程序 & 電商產品 交流羣:674454674 暗號:segmentfault
相關文章
相關標籤/搜索