Ngôn ngữ:

Tìm kiếm

Cài đặt môi trường chạy PHP - Laravel

  • Chia sẻ cái này:
Cài đặt môi trường chạy PHP - Laravel

1. Cài đặt Laravel trên docker

  • Tạo folder laravel để chứa các file cấu hình docker
  • Tạo file Dockerfile với nội dung như sau 

    FROM eglife/base-php8.2-laravel:1.0.0
    
    WORKDIR /var/www
    
    RUN apt-get update
    RUN apt-get install -y zlib1g-dev libicu-dev g++
    RUN docker-php-ext-configure intl
    RUN docker-php-ext-install intl
  • Tạo file docker-compose.yaml với nội dung như sau

    version: '3.8'
    services:
      laravel:
        build:
          context: .
          dockerfile: ./Dockerfile
    
        container_name: laravel
    
        volumes:
          - ./projects:/var/www/projects
    
        networks:
          - pc_network
          
        ports:
          - 8000:8000
    
    networks:
      pc_network:
        name: pc_network
        driver: bridge

  • Tạo folder projects để mount file giữa host và docker
    Mount được cấu hình ở file docker-compose.yaml ở trên
    volumes:
          - ./projects:/var/www/projects
  • Build docker
    docker compose up --build
  • Start docker
    Tắt cửa sổ build docker. Tại folder laravel ngoài máy host chạy lệnh sau để start docker
    docker start laravel

2.Tạo project Laravel

  • Truy cập vào docker
    docker exec -it laravel bash
    cd projects/
  • Tạo project Laravel
    composer create-project --prefer-dist laravel/laravel myapp

3.Run project

  • Chạy qua artisan serve command
    cd myapp
    php artisan serve --host=0.0.0.0
  • Truy cập vào trình duyệt qua http://localhost:8000/ để test
    image.png

4.Tip: Setting mount thư mục vendor

Do thư mục vendor chứa rất nhiều file nên việc mount giữa host và docker gây nên chạy project rất chậm (Đặc biệt là trên window) nên cần setting thư mục vendor theo kiểu bind mounts.

  • Xóa thư mục vendor trong docker (Chỉ thực hiện trong trường hợp tạo mới project, còn project lấy từ git về thì không cần )

    rm -rf vendor
  • Thêm setting bind mount vào docker-compose.yaml
    Thêm dòng được bôi vàng bên dưới vào file docker-compose.yaml
    version: '3.8'
    services:
      laravel:
        build:
          context: .
          dockerfile: ./Dockerfile
    
        container_name: laravel
    
        volumes:
          - ./projects:/var/www/projects
          - vendor_myapp:/var/www/projects/myapp/vendor
    
        networks:
          - pc_network
          
        ports:
          - 8000:8000
    
    volumes:
      vendor_myapp:
        name: vendor_myapp
    
    networks:
      pc_network:
        name: pc_network
        driver: bridge
  • Tại folder laravel ngoài máy host chạy lệnh sau để apply thay đổi của file docker-compose.yaml
     docker compose up -d
  • Tạo lại thư mục vendor bên trong docker
    docker exec -it laravel bash
    cd projects/myapp/
    composer install
  • Copy thư mục vendor ra bên ngoài máy host để VS Code có thể index
    zip -r vendor.zip vendor
      File zip đã được tạo ngoài host:
image-2.png
  • Extra file zip
image-3.png
Những file được extract nằm trong folder vendor/vendor nên cần copy all và copy ra ngoài thư mục vendor
image-4.png
Kết quả cuối cùng được cấu trúc folder như sau:
image-5.png
  • Xóa file vendor.zip đã tạo trước đó ngoài thư mục gốc
 

 

Hoc Nguyen

Hoc Nguyen

Leave a comment

Your email address will not be published. Required fields are marked *