--- tags: laravel,套件 --- # 官方套件 Valet 介紹 ![](https://i.imgur.com/2LZOfG7.png) ## 教學文章 ### 前言 大家好,我是每天在空中陪著你的哥布林工程師,今天想要為大家分享你該如何去安裝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](https://brew.sh/index_zh-tw)的朋友要先進行安裝 開啟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,請參考[這裡](https://getcomposer.org/) 同樣開啟Terminal,輸入以下指令: `curl -sS https://getcomposer.org/installer | php` `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可替換為任何字) #### 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 整個安裝流程就到這裡結束 ### 進階玩法 以下整理一些我認為你會用到的技巧 #### 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](https://ngrok.com/)來進行分享本地專案到全世界,但請特別注意 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 在進行開發的朋友 我是每天在空中陪著你成長的哥布林工程師,我們下個單元見 ### 參考資料 [Laravel官方文件](https://laravel.com/docs/8.x/valet) ## 介紹 Valet 是一個專為Mac開發者所做的Laravel開發環境。 不需要 Vagrant,也不需要 /etc/hosts檔案。你甚至能夠使用 local tunnels 來把你的網站對外分享,真的超讚! Laravel Valet會調校你的Mac環境,使之在機器開啟後就會在背景執行Nginx。接著,使用 DnsMasq,Valet會將網域類似 *.test的請求都指向到本機。 換句話說,這一個高效的Laravel開發環境只需用到大約7MB的記憶體。Valet並非作為取代Vagrant或Homestead的替代方案,只是提供給你一個新的選項,假如你要的是較為簡單的功能,需要更快的速度,或者是在記憶體不多的開發機器。 ## 安裝流程 Step 1.[安裝或更新Homebrew](https://brew.sh/index_zh-tw) `brew update` Step 2.安裝PHP7.4 `brew install php` Step 3.安裝[Composer](https://getcomposer.org/) `curl -sS https://getcomposer.org/installer | php` `mv composer.phar /usr/local/bin/composer` `touch ~/.bash_profile; open ~/.bash_profile` 在.bash_profile檔案內加入以下內容: `export PATH=~/.composer/vendor/bin:/usr/local/bin:$PATH` (完成之後按Command + Q 存檔離開) `source ~/.bash_profile`(執行剛才編輯的設定) Step 4.透過Composer來安裝Valet,確保~/.composer/vendor/bin位在$PATH的環境變數裡頭 `composer global require laravel/valet` Step 5.調校與安裝 Valet和DnsMasq `valet install` Step 6.確認DnsMasq能否生效,正常的話所有*.test的網域都會指向到本機 `ping laravel.test`(laravel可替換為任何字) Step 7.安裝MySql資料庫 `brew install mysql@5.7` Step 8.開啟MySql資料庫 `brew services start mysql@5.7`(連接資料庫 127.0.0.1 root/空密碼) Step 9.將專案所在資料夾指向到網域 切換到該專案的上層資料夾,執行valet park ## 將專案分享給其他人 valet share 出現連線被拒的處理方式 修改~/.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']); } ``` ## 如果連不了資料庫 是因為密碼編碼的問題,可在連接上mysql之後使用以下指令: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';