【Laravel入門】教你如何在Mac電腦上建置Valet開發環境
前言
大家好,我是每天在空中陪著你的哥布林工程師,今天想要為大家分享你該如何去安裝Valet
或許有些人看到標題,不曉得甚麼是Valet,Valet是一個專為Mac開發者所做的Laravel開發環境,我自己使用上最方便的感受有兩點
- 第一 自動建立同名本地端網址
比如你新增一個名為blog的專案,那valet將會自動為你生成專案網址 http://blog.test
- 第二 支援https
你或許會覺得奇怪,本地開發為什麼需要https。首先方便你測試整個應用在https協定下會不會有問題,接著當要測試臉書的社群登入串接,也是要求用https的。而Valet讓你不需要有任何負擔或太多的設定,就能開啟https協定
另外也省去你去安裝 Vagrant,也不需要設定 /etc/hosts檔案。你甚至能夠使用 local tunnels 來把你的網站對外分享,真的超讚!
Laravel Valet會調校你的Mac環境,使之在機器開啟後就會在背景執行Nginx。接著,使用 DnsMasq,Valet會將網域類似 *.test的請求都指向到本機,這就是剛談到第一點的由來
換句話說,這一個高效的Laravel開發環境只需用到大約7MB的記憶體。Valet並非作為取代Vagrant或Homestead的替代方案,只是提供給你一個新的選項,假如你要的是較為簡單的功能,需要更快的速度,或者是在記憶體不多的開發機器。當然還有好多好多的好處,說也說不完
那Valet沒有缺點嗎?當然還是有
它最大的缺點就是目前只支援 Mac 作業系統,所以如果你是使用Windows作業系統的朋友,可以上一頁返回離開了。但是如果你真的很想體驗Valet,或許你可以考慮購買 Apple M1,網路風評效能很不錯呢!
開始打造Valet
接著我將用九個步驟來引導你一步步地把 Laravel Valet 安裝到你的Mac電腦上面,以下指令都需要你開啟Terminal視窗來進行輸入
Step 1.安裝/更新 Homebrew
等會安裝PHP會用到,所以沒裝過Homebrew的朋友要先進行安裝
開啟Terminal,貼上下面這段指令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
如果已經裝過brew,可以在現在順便做個更新,指令如下:
brew update
Step 2.安裝 PHP
brew install php
Step 3.安裝 Composer
Composer是幫你管理PHP套件的工具,必須安裝。如果想更多的了解Composer,請參考這裡
同樣開啟Terminal,輸入以下指令:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
為了方便之後在任何路徑都能夠順利地呼叫Composer,所以有必要將Composer執行檔路徑給放入環境變數PATH中,做法如下:
同樣開啟Terminal,輸入以下指令,將會跳出這個檔案的編輯視窗:
touch ~/.bash_profile; open ~/.bash_profile
在.bash_profile檔案內加入以下內容,完成之後請按Command + Q 存檔離開:
export PATH=~/.composer/vendor/bin:/usr/local/bin:$PATH
同樣開啟Terminal,輸入以下指令來執行剛編輯的設定而不需要重新開機
source ~/.bash_profile
Step 4.下載 Valet
透過Composer來下載Valet,請確保~/.composer/vendor/bin有位在$PATH的環境變數裡頭,否則將出現找不到composer指令的錯誤
composer global require laravel/valet
Step 5.安裝 Valet
在Terminal輸入以下指令來調校與安裝 Valet 和 DnsMasq,之後每次重新開機 Valet都會自動啟動開發所需的相關服務
valet install
Step 6.確認安裝是否成功
透過測試DnsMasq能否生效來確認安裝有無問題,正常的話所有*.test的網域都會指向到本機
在 Terminal 輸入以下指令
ping laravel.test(laravel可替換為任何字)
測試完可以按 Ctrl + C 跳出
Step 7.安裝 MySql 資料庫
Laravel 8 的官網是推薦使用 DBngin ,但我使用上覺得不是很順,以下還是推薦使用 brew 來進行安裝,在 Terminal 輸入以下指令:
brew install mysql@5.7
如果你選擇使用 DBngin,可能會出現服務順利開啟但是無法連入的問題,這是因為密碼編碼的問題,可在連接上mysql之後使用以下指令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Step 8.開啟 MySql 資料庫
在 Terminal 輸入以下指令:
brew services start mysql@5.7
連接資料庫的相關口令為 127.0.0.1 root/空密碼
Step 9.指定網頁伺服器根目錄
切換到你將用來存放所有網頁應用的資料夾,例如 htdocs 或 sites 之類的。完成這個動作之後像是 pandalab.test 這樣的網址就會指向到 park 資料夾裏頭的 pandalab 專案
在 Terminal 輸入以下指令:
valet park
park 支持子網域,比如 http://doc.pandalab.test
整個安裝流程就到這裡結束
進階玩法
以下整理一些我認為你會用到的技巧
PHP版本降級
開啟 Terminal ,輸入以下指令來降至 php 7.4:
valet use php@7.4
最好順便再做一次 composer global update 以便把依賴全域套件做個更新
composer global update
Valet升級
開啟 Terminal ,輸入以下指令:
composer global update
最好順便再做一次 Valet install 以便把設定檔案做個更新
valet install
啟用TLS
如果你想要使用 HTTP/2 來讓某個專案網址支援 TLS,比如網址為pandalab.test,開啟 Terminal ,輸入以下指令:
valet secure pandalab
如果想關閉 TLS 回到一般的 HTTP,開啟 Terminal ,輸入以下指令:
valet unsecure laravel
將本地專案提供給外部人員訪問
這邊說明如何透過Ngrok來進行分享本地專案到全世界,但請特別注意 Ngrok 免費版本只支持到1分鐘上限40個請求,因此 Livewire 專案就不太適合用這個,沒用幾下就爆了
開啟 Terminal ,將路徑切換到你要分享的專案資料夾,輸入以下指令:
valet share
如果要取消分享,只要按下 Control + C 即可
問題排除:出現連線被拒的處理方式
修改~/.composer/vendor/laravel/valet/cli/valet.php file 檔案如下:
$app->command('tld [tld]', function ($tld = null) {
if ($tld === null) {
- return info(Configuration::read()['tld']);
+ return output(Configuration::read()['tld']);
}
以下就是 Valet 開發環境安裝的相關內容,希望對使用 Mac 的朋友有幫助,不需要再使用 XAMPP 了。如果有任何疑問歡迎留言讓我知道,或者是透過上方的社群連結來與我聯絡,喜歡這篇文章的話也拜托用右下角的分享按鈕幫我分享出去,幫助更多使用 Mac 在進行開發的朋友
我是每天在空中陪著你成長的哥布林工程師,我們下個單元見