前言
Laradock 是一個用 Docker 打造完成的 PHP 開發環境 就像是在官網所說的
先會用 Docker,至於 Docker 是什麼就晚點再說吧!
所以就讓我們照以下步驟 迅速使用 Docker 開發 Laravel 吧!
實作步驟
環境設置
實際安裝
Follow 官網 說明直接操作下去就完成啦! 因為官網說明已經滿完整了 所以以下就是針對我自己遇到的坑做一些小提醒
小提醒
由於我們想使用同一個 Docker 來跑多個 Laravel 專案 以下就以 B) Setup for Multiple Projects:
為例
資料夾結構 為了同一個 Docker 跑多個專案 所以資料夾結構會是
* laradock * project-1 * project-2
我的實際結構是
~/Sites/laradock ~/Sites/Projects/laravel ~/Sites/Projects/paymechien
host 設置
127.0.0.1 project-1.test // 注意這邊有 `.test` 喔 127.0.0.1 project-2.test // 注意這邊有 `.test` 喔
Laradock 下的
.env
設置 搭配我的實際結構 所以這邊要寫成APP_CODE_PATH_HOST=~/Sites/Projects
PhpMyAdmin 相關 我的
PhpMyAdmin
不知為何一開始登不進去 後來發現是版本問題 所以要在.env
把原來的MYSQL_VERSION=latest
改成MYSQL_VERSION=5.7
順帶一提,DB的帳密就是上述設定的下面幾行 不要 key 錯囉 (預設帳號、密碼都是 root)
在專案底下的 .env 檔 DB_HOST 要改成
DB_HOST=mysql
然後 DB_USERNAME 及 DB_PASSWORD 都要DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=payment DB_USERNAME=root DB_PASSWORD=root
進入 PhpMyAdmin 的方法 在 laradock 底下的 .env 裡有定義 PhpMyAdmin 的 port 預設是 8082 所以若要進入 PhpMyAdmin 的話 就是在 domain 後面加上 port 號即可 eg. http://abc.test:8082
專案一直出現 500 error 問題 注意在官網文件裡有說 要把 root 設對
以我的 case 為例,就要設成下面這樣: [專案1]
[專案2]
還是出現 500 error 如果上述還是不行的話 那可能就是因為你是用原來就寫好的專案 (我就是這樣 QQ) 所以沒有把專案的
.env
給commit 上去 以致 laradock 吃不到 然後就 GG了 所以解法就是 在專案資料夾內下cp .env.example .env
然後生成新的 keyphp artisan key:generate
這樣就完成啦!
ps. 如果出現以下error
PHP Warning: require(/home/matynjr/events/vendor/autoload.php): failed to open stream: No such file or directory in /home/matynjr/events/artisan on line 18 PHP Fatal error: require(): Failed opening required '/home/matynjr/events/vendor/autoload.php' (include_path='.:/usr/share/php') in /home/matynjr/events/artisan on line 18
那就是composer太舊,跑一下
composer update
就好了
最後再 run 一下 docker-compose up -d nginx mysql
看到畫面就ok囉!
- 無法跑 php artisan migrate 目前發現好像是要進入容器才能運作 (不知道是不是因為有複數專案的關係) 所以要進入容器內下指令
docker-compose exec workspace bash
然後再下root@xxx6:/var/www# php artisan migrate
結語
其實我本來是用 Valet 當做本地的開發環境 但由於 Laradock 真的太潮了 又可以確保開發者大家的開發環境一致 自己使用後又發現一些小坑 所以就來分享一下,希望可以幫助到大家!