Laravel本地開發環境選擇Homestead還是Valet?

語言: CN / TW / HK

theme: channing-cyan

小知識,大挑戰!本文正在參與「程式設計師必備小知識」創作活動

本文已參與 「掘力星計劃」 ,贏取創作大禮包,挑戰創作激勵金。

首先這兩個開發環境我都用過,而且都比較好用,目前我使用的 Valet ,因為 Valet 更輕量級,開箱即用,簡單高效。

Valet 還是 Homestead

Laravel 提供了兩種本地開發環境 Homestead 和 Valet。 Homestead 和 Valet 的不同之處在於目標受眾和本地開發的方式。

Homestead 提供了一個完整的、具有自動化的 Nginx 配置的 Ubuntu 虛擬機器。如果你想要完全虛擬化的 Linux 開發環境或 Windows/Linux,Homestead 是一個不錯的選擇。

Valet 僅支援 Mac,並要求你將 PHP 和資料庫伺服器直接安裝到本地機器上。

這可以很容易地通過使用 Homebrew 相關命令來實現,比如 brew install php72 和 brew install mysql

Valet 提供了一個極快的、資源消耗最少本地開發環境,非常適合只需要 PHP/MySQL 並且不需要虛擬開發環境的開發人員。

Valet 和 Homestead 都是配置 Laravel 開發環境的絕佳選擇。選擇哪一個僅僅取決於個人喜好和團隊的需求。

我的選擇

沒錯,我用 Windows 開發時使用的 Homestead ,用Mac開發之後就改用 Valet 了。

Valet 簡介

Valet 是 Mac 極簡主義者的 Laravel 開發環境。沒有 Vagrant,不需要配置 /etc/hosts 檔案。甚至可以使用本地隧道公開共享你的站點。

Laravel Valet 為您的 Mac 設定了開機後始終在後臺執行 Nginx 服務。Valet 使用 DnsMasq 將所有指向安裝在本地的計算機站點請求代理到 *.test 結尾的域名上。

簡單高效的完美詮釋:一個速度極快的 Laravel 開發環境只佔用 7MB 記憶體。

Valet 並不是想要完全替換 Vagrant 或 Homestead,只是提供另外一種使用起來更加靈活、方便、以及記憶體佔用更小的選擇。

Valet 支援但不侷限於以下內容: Laravel Lumen Bedrock CakePHP 3 Concrete5 Contao Craft Drupal Jigsaw Joomla Katana Kirby Magento OctoberCMS Sculpin Slim Statamic Static HTML Symfony WordPress Zend

Valet的安裝

Valet 需要 macOS 系統和 Homebrew。在安裝之前,要確保沒有其它程式(如 Apache 或 Nginx)佔用了本地機器的 80 埠。

  • 使用 brew update 將 Homebrew 安裝或更新到最新版本。
  • 使用 Homebrew 的 brew install php 命令安裝 PHP 7.3。
  • 安裝 Composer.
  • 使用 Composer 的 composer global require laravel/valet 命令安裝 Valet。並確保 ~/.composer/vendor/bin 目錄在系統的 "PATH" 中。
  • 執行 valet install 命令來配置和安裝 Valet 和 DnsMasq,並註冊 Valet 後臺服務,隨系統執行自行啟動。

安裝完 Valet 後,可以嘗試使用類似 ping xxx.test 的命令在終端上 ping 任何一個 *.test 的域名。如果 Valet 安裝正確,可以在終端上看到來自 127.0.0.1 的響應。

每次機器啟動時,Valet 會自動啟動其程序。所以只要完成了 Valet 的初始化,就無需再次執行 valet start 或 valet install。

如何使用其它域名

預設情況下,Valet 使用 .test 頂級域名為你的專案提供服務。如果你想使用其它域名,可以使用 valet tld tld-name 命令。

例如,如果你想使用 .xyz 來代替 .test,執行 valet tld xyz,Valet 會自動將站點頂級域名改為 *.xyz 。

資料庫

如果你要使用資料庫,請在終端執行 brew install [email protected] 安裝 MySQL。

一旦安裝完成,你可以使用 brew services start [email protected] 命令啟動 MySQL。

然後,你可以使用 root 使用者名稱和空字串密碼連線到 127.0.0.1 的資料庫。

指定 PHP 版本

Valet 允許你使用 valet use [email protected] 命令來切換 PHP 版本。

如果指定版本尚未安裝,Valet 將通過 Brew 來安裝指定的 PHP 版本:

``` valet use [email protected]

valet use php ```

Valet的升級

可以在終端使用 composer global update 命令來更新 Valet。

升級後,如有需要,最好再次執行 valet install ,以便 Valet 對配置檔案進行升級。

升級到 Valet 2.0

Valet 2.0 將 Valet 底層的 Web 伺服器從 Caddy 轉移到 Nginx。

升級到此版本之前,你應該執行以下命令停止並解除安裝現有的 Caddy 程序:

valet stop valet uninstall

接下來,就根據你採用的安裝方式來升級 Valet (通常是通過 Git 或 Composer )。

如果是通過 Composer 安裝了 Valet ,則應使用以下命令更新到最新的主要版本:

composer global require laravel/valet

如果更新了 Valet 的原始碼,應該執行 install 命令: valet install valet restart 升級過後,可能需要重新設定或重新連結你的站點。

服務站點

安裝了 Valet 之後,就可以開始設定站點。

Valet 提供兩個命令來為 Laravel 的站點提供服務:park 和 link。

park 命令

執行 mkdir ~/Sites 命令在 Mac 上建立一個新的目錄。

接下來,執行 cd ~/Sites 和 valet park 將當前的工作目錄作為 Valet 搜尋站點的路徑。

接下來,在這個目錄中建立一個新的 Laravel 站點,比如:laravel new blog。

在瀏覽器中開啟 http://blog.test

就這麼簡單,在 『parked』的目錄中建立的任何 Laravel 專案都將自動使用這種方式訪問: http://folder-name.test 

link 命令

如果要在目錄中提供單個站點而不是整個目錄,就使用 link 命令。

要使用該命令,先在終端裡切換到你的某個專案並執行 valet link app-name。

Valet 會在 ~/.config/valet/Sites 中建立一個符號連結指向當前的目錄。

執行 link 命令後,你可以在瀏覽器通過這種方式訪問站點: http://app-name.test 

執行 valet links 命令可以檢視所有目錄連結的列表。你還可以使用 valet unlink app-name 來刪除符號連結。

注意:可以使用 valet link 將多個(子)域名指向同一個應用。要新增子域名或其它域名到應用,可以在應用目錄下執行 valet link subdomain.app-name。

使用 TLS 保護站點

預設情況下,Valet 服務站點通過純 HTTP 的方式。

但是,如果想一個站點使用 HTTP/2 通過加密 TLS 提供服務,使用 secure 命令。

例如,如果站點通過 Valet 在 laravel.test 域上提供服務,你應當執行如下的命令去保護它: valet secure laravel

要一個站點『解除保護』並恢復為通過純 HTTP 提供服務它的流量,使用 unsecure 命令。

與 secure 命令一樣,該命令接受你希望去解除保護的主機名稱:

valet unsecure laravel

總結

好了,上述就是 Valet 的基礎功能,是不是非常簡單高效。

上述這些功能已經能夠滿足我們在本地開發了,當然 Valet 支援的功能不止這些,還包括:

共享站點、配置網站的環境變數、自定義 Valet 驅動、程序相關操作等等。

這些進階的內容下一篇給大家整理出來。

相關推薦

同時牆裂安利這篇優質爆文,感謝大家支援: Git使用實戰:多人協同開發,緊急修復線上bug的Git操作指南。