A+ A A-

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

運作環境:

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

安裝流程:

  1. 下載、安裝 Docker Desktop
    網址:https://hub.docker.com/editions/community/docker-ce-desktop-mac
  2.  
  3. clone laradock 專案在自己的家目錄下
    cd ~/
    git clone https://github.com/laradock/laradock.git
  4.  
  5. 從範例檔案複製一份作為環境設定(.env)
    cd Laradock
    cp env-example .env
  6.  
  7. 編輯「Laradock/.env」檔案,透過關鍵字搜尋跳轉各設定區塊,注意點有:
    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 的登入埠口)
  8.  
  9. 編輯macos 本身的/etc/hosts 檔案,將測試專案網站的網址加在裡面,在瀏覽器輸入測試專案網址時能夠連到container 而不是外部網站
    sudo nano /etc/hosts
    加入內容:
    127.0.0.1    laravel.test
  10.  
  11. 啟動需要的 container
    docker-compose up -d nginx mysql phpmyadmin
    開始下載所需的docker image,同時會下載、啟動 PHP-FPM 及 Workspace container(用 composer、artisan 等指令操作Laravel 專案)
  12.  
  13. 透過 PHPMyAdmin 建立 Laravel 專案用資料庫
    網址輸入:127.0.0.1:8081,登入資訊如下:
    主機:mysql (對應MySQL container)
    帳號:root
    密碼:root
    設定好連線帳號、密碼與資料庫後到資料庫「操作」畫面將編碼與校正變更為「utf8mb4_unicode_ci」
  14.  
  15. 建立 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
  16.  
  17. 設定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
  18.  
  19. 建立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
  20.  
  21. 完成以上作業後重新起動各 container:
    docker-compose down
    docker-compose up -d nginx mysql
    然後在瀏覽器輸入Laravel 專案網址,如果能看到Laravel 專案頁面則完成。
  22.  
  23. 備考:
    重開機後記得要先啟動 Docker Desktop 才能啟動各 container。
    常用指令:
    docker-compose ps(觀看執行中的各 container 及使用埠口)
    docker-compose down(停止執行中的container)
    docker-compose exec [container 名] bash(切換至container 內)
    docker-compose build [container 名] (更改程式版本時需重新編譯docker image 用,記得先將執行中的container 停止)

參考資料