# Laradock 安裝 Laravel ###### tags: `laravel` `laradock` > 第一次動手寫筆記,請多見諒。 [ToC] ## 當前使用環境 > 這邊以 Windows 的 WSL2 進行操作,如果尚未安裝 WSL2 請參考 [官方的教學](https://learn.microsoft.com/zh-tw/windows/wsl/install) - [Git](https://git-scm.com/downloads) - [Docker](https://docs.docker.com/desktop/install/windows-install/) ## Step 1: 建立資料夾 在某一個喜愛的位置下,建立資料夾: ```console # 建立資料夾 mkdir test-laradock # 進入資料夾內 cd test-laradock # 建立存放 Laravel 專案的資料夾 mkdir www # 下載 Laradock git clone https://github.com/laradock/laradock.git ``` :::info :bulb: 完成上面步驟,會發現資料夾結構如下圖這樣子。 ![](https://i.imgur.com/IPS6Ro2.png) ::: ## Step 2: 修改 Laradock 環境參數 ```console # 進入剛剛用 Git 下載的 Laradock 資料夾中 cd laradock # 複製環境檔 .env.example cp .env.example .env # 使用 vim 開啟 .env vim .env ``` - 修改專案放置的位置 (打算把 laravel 專案放置在 www 資料夾下) > #Point to the path of your applications code on your host APP_CODE_PATH_HOST=../www > #Point to where the `APP_CODE_PATH_HOST` should be in the container APP_CODE_PATH_CONTAINER=/var/www - 確認 Nginx 的 Port > NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 - 確認 MySQL 相關設定 > MYSQL_VERSION=latest #(預設為latest,可以調整其他版本,例如: 5.7) MYSQL_DATABASE=default #預設資料表名稱 MYSQL_USER=default MYSQL_PASSWORD=secret MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=root - 確認 PHP My Admin 設定 > PMA_USER=default PMA_PASSWORD=secret PMA_ROOT_PASSWORD=secret PMA_PORT=8081 ## Step3: 建立 Nginx Config 請先切回 laradock 的目錄 ``` console # 複製一份設定檔來作使用 cp -r nginx/sites/laravel.conf.example nginx/sites/laravel.test.conf # 編輯 laravel.test.conf 檔案 vim nginx/sites/laravel.test.conf ``` - 修改 Config 檔案 > 打開 laravel.test.conf 後,把 server_name 跟 root 作修改。 > 範例: > ```vim > server_name guagua.test; > root /var/www/guagua/public; > ``` ![](https://i.imgur.com/BKqNrfb.png) ## Step4: 啟動 Docker ```console # 在 laradock 資料夾執行 docker-compose up -d nginx mysql phpmyadmin ``` ## Step5: 進入 Container 內建立 Laravel 專案 ```console # 在 laradock 資料夾執行 docker-compose exec workspace bash # 進入後,查看一下當前位置 (應該會是 /var/www) pwd # 使用 composer 安裝 Laravel 專案 composer create-project laravel/laravel --prefer-dist guagua # 查權限 id www-data # 修改資料夾使用的權限 chown -R 33:33 guagua/storage # 離開 Container exit ``` ## Step6: 修改 Laravel 專案的環境變數 ```env # 要修改成先前 Laradock 上的 MySql 參數 DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=default DB_USERNAME=default DB_PASSWORD=secret ``` > 如果有使用 rabbitmq 或者 redis,也記得要修改相關環境變數 ## Step7: 修改 hosts 檔案 要記得去 C:\WINDOWS\system32\drivers\etc\hosts 添加對應的 IP ``` 127.0.0.1 guagua.test ``` ## Step8: 驗收 - 點開連結 [http://guagua.test](http://guagua.test) 查看是否可以進入 Laravel 頁面。 :::danger 如果發生 storage 權限問題, ```console # 在 laradock 資料夾執行 docker-compose exec workspace bash # 修改資料夾寫入權限 chmod -R 777 guagua/storage # 離開 Container exit ``` ::: --- 參考資料: [一步步教您使用 Laradock 快速打造Laravel/PHP 環境](https://blog.twjoin.com/%E4%B8%80%E6%AD%A5%E6%AD%A5%E6%95%99%E6%82%A8%E4%BD%BF%E7%94%A8laradock-%E5%BF%AB%E9%80%9F%E6%89%93%E9%80%A0laravel-php%E7%92%B0%E5%A2%83-15f046d64c34) [使用Laradock建立Laravel運行環境 & 遇到的問題](https://jba1989.medium.com/%E4%BD%BF%E7%94%A8laradock%E5%BB%BA%E7%AB%8Blaravel%E9%81%8B%E8%A1%8C%E7%92%B0%E5%A2%83-%E9%81%87%E5%88%B0%E7%9A%84%E5%95%8F%E9%A1%8C-a4a34c48f17e) [laradock laravel log permission denied error](https://laracasts.com/discuss/channels/laravel/laradock-laravellog-permission-denied-erro) --- 各位大大,如果我有哪裡寫錯的話,歡迎留言告知。 發現錯誤可以讓我們都成長,感謝。