內容目錄
前言
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
然後生成新的 key
php 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 真的太潮了
又可以確保開發者大家的開發環境一致
自己使用後又發現一些小坑
所以就來分享一下,希望可以幫助到大家!