Laravel 從零單排系列教程 01 :Homestead 環境搭建

SadCreeper發表於2019-04-23

工欲善其事,必先利其器,既然要做開發,開發環境一定要搞好,Laravel 是一個比較重的框架,其對電腦效能有一定的要求,其執行環境也有一定的門檻,下面是強烈建議提前準備好的內容:

  • 一臺效能好的電腦(做開發的一定要買臺好電腦,至少不要太差吧,至少能同時跑虛擬機器,IDE,網頁,聊天工具等不要卡)
  • 一個乾淨的 Win10 系統(mac 系統也可以,但是我沒用過就不討論了,windows 的話還是用 win10 吧,純淨版的)
  • 一個速度快的 vpn(強烈建議,做開發不用 vpn 就是給自己添堵,速度快,至少能看 Youtube 不卡吧)

準備好這些之後,其實就比較簡單了,環境使用的是 Homestead 方案,因為這個是官方的,網上關於 Homestead 的搭建有很多版本,大都是為了解決國內網路問題,其實把 vpn 搞好就可以按照官方文件裡的來了,我試過幾十次了,很順利,如果沒有 vpn 的話,或者是用我的方法佈置環境遇到了什麼問題,都可以直接留言或者加群 3113961

搭建之前想多說一句:

只要是在命令列中進行的操作,一定要注意看執行過程中輸出的文字,有沒有 Err 或者 Failed 這樣的字眼,如果有的話就是出問題了,要看一下原因,遇到過一些新手,看程式跑完了就不管了,成功還是失敗了都不知道,如果中間某步出錯了,後面的一般都不會成功,如果是 Warn 就可以根據提示看是否需要處理(英語不好的話開個詞典查查,不要假裝沒看見= =)

下面是搭建步驟:

安裝 VirtualBox

VirtualBox 讓我們可以建立虛擬機器,本教程是基於 Laravel 5.5 版本,根據文件,需要安裝 VirtualBox 5.1,許多人裝的時候直接裝了個最新版本,但是根據經驗,一般都會出問題,所以直接照著文件來,裝 5.1 版本的,VirtualBox 會經常讓你更新,不要手抖點更新,VirtualBox 5.1 下載地址

安裝 Vagrant

Vagrant 直接下載安裝最新版即可,Vagrant 下載地址

新增 Vagrant box

這一步通常來說,由於網路原因,會卡死,所以我們要使用 vpn,首先保證你開了 vpn 能上 Youtube 看視訊不卡,然後看一下代理伺服器地址(一般是127.0.0.1:1080,具體可在瀏覽器設定中檢視),然後開啟系統自帶的 cmd,給 cmd 設定通過代理伺服器訪問:

set http_proxy=http://127.0.0.1:1080  
set https_proxy=http://127.0.0.1:1080

設定好後,就可以新增 box 了:

vagrant box add laravel/homestead

如果正常的話,會首先下載一個 box,然後自動安裝,下載過程可能需要十幾分鍾或者幾十分鐘,在下載過程中最好不要動電腦,根據經驗,動了電腦容易卡死。。

安裝 Homestead 程式碼

Homestead 程式碼直接使用 Git 下載(所以電腦上如果沒有 Git 環境的話,需要先裝 Git)

cd ~   

git clone https://github.com/laravel/homestead.git Homestead

~ 是一個目錄,位置在 C:\users\你的使用者名稱\

由於 Homestead 的 master 分支並不是穩定分支,你應該用打過標籤的穩定版本。你可以在Github 發行頁面 上找到最新的穩定版本,但是根據經驗,用最新的穩定版本有時會出現問題,我一般是使用:7.12.0 這個版本,大家可以用這個

cd Homestead  

git checkout v7.12.0

安裝好之後,執行下面命令建立配置檔案:

init.bat

配置 Homestead.yaml 檔案

這個檔案在 ~/Homestead/Homestead.yaml,找個編輯器開啟它,下面是一個 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:/code/laravel  
      to: /home/vagrant/code  

sites:  
    - map: project1.test  
      to: /home/vagrant/code/project1/public  
    - map: project2.test  
      to: /home/vagrant/code/project2/public  

databases:  
    - project1  
    - project2

這個檔案暫時需要關注的就 3 個地方:

第一個地方,13行中的那個地址,C:/code/laravel,這是我電腦中存放 laravel 專案的目錄,你要根據你的實際位置改一下,一定要是一個已經存在的目錄

第二個地方,17-20行,也就是:

- map: project1.test  
  to: /home/vagrant/code/project1/public  
- map: project2.test  
  to: /home/vagrant/code/project2/public

這裡是配置你的專案的,2行為一組(map 是域名,to 是到對應 laravel 專案 public 資料夾的目錄),你有幾個 laravel 專案,就應該有幾組,比如這裡我們有兩個 laravel 專案,一個叫 project1,一個叫 project2,所以這樣寫,這裡根據自己的實際情況寫就行,注意格式必須一模一樣,一個空格都不能差

第三個地方,23-24行,也就是:

- project1  
- project2

這裡是配置專案對應的資料庫的,有幾個 laravel 專案,就應該有幾行,並且和上面的專案是一一對應的

這個檔案其實後面隨時都可以改,所以也不用怕寫錯,好,現在假設你完全沒有專案,那可以直接複製下面的程式碼覆蓋你的 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:/code/laravel  
      to: /home/vagrant/code  

sites:  
    - map: hello.test  
      to: /home/vagrant/code/hello/public  

databases:  
    - hello

按照上面這個寫法,你就需要在 C:/code/laravel 這個目錄下有一個叫 hello 的 laravel 專案,這個專案可以後面建立,但是要先把這個目錄建出來,也就是在 c 盤下建一個 code 資料夾,再在 code 資料夾下建一個 laravel 資料夾。

修改 Host 檔案:

Host 檔案在 C:\Windows\System32\drivers\etc\hosts,用編輯器開啟它,在最後加上一行:

192.168.10.10  hello.test

這裡也是跟專案統一的,有幾個專案就要有幾行

啟動虛擬機器

現在進入 Homestead 目錄,啟動虛擬機器

cd ~/Homestead  

vagrant up

這一步如果出錯的話一般是因為 Homestead.yaml 檔案沒寫對,如果卡在 SSH auth method: private key 一般是因為電腦沒開啟虛擬化,需要進 BIOS 改一下設定。

搞定!

到這一步,環境就算搭好了,如果你已經有專案的話,應該就可以訪問了,如果你是向上面說的還沒有建立過專案,現在還需要建立一個叫 hello 的 laravel 專案,下面就來建立:

首先登入虛擬機器

cd ~/Homestead  

vagrant ssh

稍等一會就可以登入虛擬機器,後面的指令有些是在虛擬中執行的,我會在前面加一個字首 vagrant@homestead: $ ,用於區分,複製的時候注意不要複製到字首了。登陸之後是在虛擬機器的 ~ 目錄下,我們要進入 ~/code 目錄,這個目錄和我們本機的 C:\code\laravel 目錄一樣,是對映的,用來放所有的 laravel 專案

vagrant@homestead: $ cd ~/code

直接使用 composer 安裝一個新的 laravel 專案:

// 先換源  
vagrant@homestead: $ composer config -g repo.packagist composer https://packagist.phpcomposer.com  

// 安裝  
vagrant@homestead: $ composer create-project --prefer-dist laravel/laravel hello "5.5.*"

安裝好後,在本機瀏覽器訪問 hello.test 即可。

如何新增一個全新的 laravel 專案?

假如我現在已經有了一個或者幾個專案,我又想新建一個專案,並且是一個全新的 laravel 專案,如何操作?思路如下:啟動虛擬機器 -> 登入虛擬機器 -> 建立專案 -> 退出虛擬機器 -> 修改 Homestead.yaml 和 hosts 檔案 -> 更新虛擬機器配置 -> 完成

// 啟動虛擬機器  

cd ~/Homestead  
vagrant up  

// 登入虛擬機器  
vagrant ssh  

// 建立專案,注意專案名字要改成自己的  
vagrant@homestead: $ cd ~/code  
vagrant@homestead: $ composer create-project --prefer-dist laravel/laravel 你的專案名稱 "5.5.*"  

// 退出虛擬機器  
vagrant@homestead: $ exit  

// 修改 Homestead.yaml,參照上文配置 Homestead.yaml 檔案,只需改兩個地方:sites 部分加一組, databases 部分加一行  

// 修改 hosts,參照上文配置 hosts 檔案,只需加一行  

// 更新虛擬機器配置  
cd ~/Homested  
vagrant provision  

// 完成了,根據你定義的域名來訪問

如何將一個已有的 laravel 專案部署到本機的 Homestead?

假如現在別人給了你一個現有的 laravel 專案的 GitHub 地址,或者說你自己傳到 GitHub 上的某個 laravel 專案要在其他的新電腦上重新部署,該如何操作?思路如下:啟動虛擬機器 -> 登入虛擬機器 -> 拉取專案 -> 配置專案 -> 退出虛擬機器 -> 修改 Homestead.yaml 和 hosts 檔案 -> 更新虛擬機器配置 -> 完成,可以看到和建立一個全新的專案類似,唯一區別就是建立專案變成了拉取專案和配置專案,拉取專案就直接使用 git clone,配置專案這個要看專案的要求了,一般專案的 readme 檔案中會寫出,如果是比較標準的 laravel 專案,其配置過程如下:

// 進入拉取到的專案根目錄  
vagrant@homestead: $ cd ~/code/someproject  

// 安裝依賴  
vagrant@homestead: $ composer install  

// 生成env  
vagrant@homestead: $ cp .env.example .env  

// 修改env檔案,如果不知道如何修改我後面會說  

// 生成 laravel-key  
vagrant@homestead: $ php artisan key:generate  

// 執行資料庫遷移(可選)  
vagrant@homestead: $ php artisan migrate  

// 執行資料填充  
vagrant@homestead: $ php artisan db:seed

如何修改 .env 檔案?

首先根目錄下有一個 .env.example 檔案,這個是一個示例檔案,預設是沒有 .env 檔案的,生成 .env 檔案就是把 .env.example 檔案複製一個拿來改,剛入門的話,只需要改一個地方就行了,那就是第 11 行,DB_DATABASE=homestead,等號後面是資料庫名字,這裡的名字要填你在 Homestead.yaml 檔案中 databases 那部分對應的專案那一行寫的資料庫名

閒聊

Laravel 真的是一個很好的框架,學會之後,你就可以比較輕鬆的搭建網站、微信公眾號等應用,不僅可以親手實現一些突然蹦出來的小想法,還可以幫你創造可觀的收入。大家搭的過程中如果發現有什麼遺漏的,可以留言或者加群 3113961 反饋給我,我會補上去。

ps:原文隨時更新,點此直接閱讀原文

相關文章