# 快速建置 Laravel 開發環境 ## 1.前情提要 - 在大家都有在 windows 安裝 docker-desktop 的前提下, 為能快速開發 Laravel 專案,研究後有幾種處理方式: - 1. 跟課程一樣使用 Laragon ,不過就是等同於在主機上面快速建置環境 - 2. 可以使用官方建議的 [Sail on Windows](https://laravel.com/docs/10.x#sail-on-windows),不過看起來需要額外安裝 Linux 環境。 - 3. 使用 Laradock ,就是本文中會描述的執行與安裝步驟,安裝時間較久但是相對省腦。(至少對我而言) - 如果有任何想法或是認為有更好的安裝方式,那你是對的。 ## 2.安裝指令 ### 2.1 環境設置 - 1. 先建立新資料夾,建議如下: ``` /develop /develop/laradock /develop/www ``` - 2. 在 develop 資料夾下開啟 命令提示字元 或 powershell - 下載 laradock 專案到 laradock 資料夾中 ``` git clone https://github.com/Laradock/laradock.git ./laradock ``` - 3. 開啟 laradock 資料夾,找到並複製 .env.example 命名為:.env - 修改此行 ```APP_CODE_PATH_HOST=../www```,後存檔 - ![image](https://hackmd.io/_uploads/SksTFmq_a.png) - 4. 執行指令:`docker-compose up -d nginx mysql phpmyadmin redis workspace` - 這裡大概會跑個 15 分鐘,請稍後。 ==環境建置完成== ### 2.2 網站建立 - 1. 這裡會在 www 資料夾下建立新的 laravel 專案,命名為 laravel_test_1,逐行執行以下指令 - 其中第一行就是進入到 workspace 容器,用來設置與管理開發環境,可以下指令、安裝、運行測試。 ``` docker-compose exec workspace bash composer create-project laravel/laravel --prefer-dist ./laravel_test_1 chown -R 1000:1000 ../www/laravel_test_1/storage/ exit ``` - 2. 修改:`C:\Windows\System32\drivers\etc\host` 定義自己喜歡的網址(如:`laravel.test1`) - 加上一行:`127.0.0.1 laravel.test1` - 3. 開啟 laradock\nginx\sites\ 資料夾,找到並複製 laravel.conf.example 命名為 laravel.test1.conf - 修改 laravel.test1.conf 檔案: ``` server_name laravel.test1; #這是自定義的網址 root /var/www/laravel_test_1/public; #這是資料夾名稱(laravel_test_1) ``` - 4. 重啟 Nginx:`docker-compose restart nginx` - 5. 訪問自定義的網址:`http://laravel.test1/` ![image](https://hackmd.io/_uploads/BJtsZV9_a.png) - 6. 後續開發就在 /develop/www/laravel_test_1 此windows資料夾編輯即可,可以上課了。 ==網站建置完成== ## 3.補充說明 - 如何進入 phpmyadmin - 訪問:`http://127.0.0.1:8081/` - server: "mysql", user: "default", password: "secret" (預設無權限新增資料庫) - server: "mysql", user: "root", password: "root" - 執行指令相關問題: - `docker-compose exec workspace bash` 進入 workspace 下指令即可,結束後輸入 `exit` 離開 - 進入的資料夾是在`www`中,所以記得要移動到網站資料夾中再執行指令,例如:`cd laravel_test_1` - 執行`php artisan migrate`指令失敗,出現錯誤訊息`SQLSTATE[HY000] [2002] Connection refused...` - 調整網站的 .env 檔,將 DB_HOST 改為`mysql`即可,如下範例: ```env= DB_CONNECTION=mysql DB_HOST=mysql #改這裡 DB_PORT=3306 DB_DATABASE=laravel_tasks_list DB_USERNAME=root DB_PASSWORD=root ``` ## 4.其他 - 參考文件: - https://laradock.io/ - https://blog.wu-boy.com/2019/12/setup-laravel-environment-in-15-minutes/ - https://blog.twjoin.com/一步步教您使用laradock-快速打造laravel-php環境-15f046d64c34 - https://laradock.io/documentation/#use-phpmyadmin - 關閉的時候,可以下指令: - `docker-compose down nginx mysql phpmyadmin redis workspace` - 會發現有個 Network 活著,還有個 container 活著,***強力建議絕對不要動他們***。 - 如果真的看不慣,可以改執行:`docker-compose down`就能將所有啟用的服務都關閉。