在 macbook 上使用 laradock 建立 Laravel 專案開發環境

在 macbook 上使用 laradock 建立 Laravel 專案開發環境

 

運作環境

  • macbook air 2020 (x86)
  • macOS Big Sur 11.2.2

安裝流程

下載、安裝 Docker Desktop

https://hub.docker.com/editions/community/docker-ce-desktop-mac

clone laradock 專案在自己的家目錄下

cd ~/
git clone https://github.com/laradock/laradock.git

從範例檔案複製一份作為環境設定(.env)

cd Laradock
cp env-example .env

編輯「Laradock/.env」檔案:

按下「Command」+「Shift」+「.」切換隱藏檔案顯示,再按一次回復設定」

透過關鍵字搜尋跳轉各設定區塊,注意點有:

  • Paths 部分: APP_CODE_PATH_HOST=~/Projects/ 專案存放目錄,上列內容是設定存放在家目錄下的「Projects」資料夾
  • PHP Version 部分: PHP_VERSION=7.4 設定 PHP-FPM container 的PHP 版本,也會影響到Workspace container。撰寫當下是7.3,如果啟動後有改版本記得要重新 build 才會生效。
  • MYSQL 部分: MYSQL_ROOT_PASSWORD=root 
    up phpmyadmin 之後以root 身份登入時的密碼
  • PHP MY ADMIN 部分:
    PMA_USER=default
    PMA_ROOT_PASSWORD=secret
    PHA_PORT=8081

    PHPMyAdmin 的登入埠口預設為8081

編輯macos 本身的/etc/hosts 檔案,將測試專案網站的網址加在裡面,在瀏覽器輸入測試專案網址時能夠連到 container 而不是外部網站

sudo nano /etc/hosts

加入內容

127.0.0.1 laravel.test

啟動需要的 container

docker-compose up -d nginx mysql phpmyadmin

透過 PHPMyAdmin 建立 Laravel 專案用資料庫網址輸入:

127.0.0.1:8081

登入資訊如下:

  • 主機:mysql (對應MySQL container)
  • 帳號:root
  • 密碼:root

設定好連線帳號、密碼與資料庫後到資料庫「操作」畫面將編碼與校正變更為「utf8mb4_unicode_ci」

建立 Laravel 專案:切換至 workspace container:

docker-compose exec workspace bash

進入後會發現路徑在/var/www,對應宿主系統(macos)的「~/Projects」。用 composer 指令建立Laravel 專案,以 Laravel 8 最新版為例:

composer create-project laravel/laravel laravel.test 8.* --prefer-dist

設定Laravel 專案資料庫連線資訊切換至專案目錄:

cd ~/Projects/laravel.test

在 Finder 畫面下按command + shift + . 可顯示隱藏檔案,接著編輯 Laravel 專案「.env」檔案:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=ffxitoolbox
DB_USERNAME=ffxitoolbox
DB_PASSWORD=ffxitoolbox

建立Nginx 站台設定檔

cd ~/Laradock/nginx/sites
cp laravel.conf.example laravel.test.conf

編輯上述新增的站台設定檔,其中:server_name:站台網址,範例如下:

server_name laravel.test;

root:網站檔案目錄(/var/www <-> ~/Projects),記得Laravel 專案的起始目錄是「public」,範例如下:

root /var/www/ffxitoolbox.abokuo.com/public;

error_log:錯誤日誌檔案,建議以網站別命名。範例如下:

error_log /var/log/nginx/ffxitoolbox.abokuo.com_error.log

access_log:存取日誌檔案,建議以網站別命名。範例如下:

access_log /var/log/nginx/ffxitoolbox.abokuo.com_access.log

完成以上作業後重新起動各 container:

docker-compose down
docker-compose up -d nginx mysql

然後在瀏覽器輸入Laravel 專案網址,如果能看到Laravel 專案頁面則完成。

備考

重開機後記得要先啟動 Docker Desktop 才能啟動各 container。

docker-compose ps

常用指令

docker-compose ps

觀看執行中的各 container 及使用埠口
docker-compose down

停止執行中的 container
docker-compose exec [container 名] bash

切換至container 內
docker-compose build [container 名] 

更改程式版本時需重新編譯 docker image 用,記得先將執行中的 container 停止
docker exec [Nginx container 名如:laradock_nginx_1] nginx -t

Nginx container 執行命令:測試設定檔是否正確
docker exec [Nginx container 名如:laradock_nginx_1] nginx -s reload

Nginx container 執行命令:重新載入設定檔

參考資料

 
文章作者:A-Bo Lee
作者大頭照

居住在臺灣的 Joomler,期望以程式設計、開放原碼推廣活動收入養活一家老小。
35 歲後改姓李,id 作為曾為郭姓的證明。
FFXI:Abokuo@Sylph鯖、よろしくです。

看完文章有什麼想法嗎?利用下面表單告訴作者吧

請先閱讀
服務條款隱私權政策,送出回應意即同意前述文件。標記 * 欄位請務必填寫,電子郵件信箱僅作驗證使用,不會顯示在回應中。