溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Docker搭建Laravel本地環境

發布時間:2022-03-30 15:47:49 來源:億速云 閱讀:357 作者:iii 欄目:開發技術
# 如何使用Docker搭建Laravel本地環境

## 前言

在現代Web開發中,Docker已成為構建標準化開發環境的利器。對于Laravel開發者而言,使用Docker可以快速搭建包含PHP、MySQL、Redis等服務的完整環境,避免"在我機器上能運行"的經典問題。本文將詳細介紹如何通過Docker Compose搭建Laravel本地開發環境。

## 環境準備

在開始之前,請確保你的系統已安裝以下工具:

- Docker Desktop([Windows/Mac](https://www.docker.com/products/docker-desktop))
- Git(可選,用于克隆Laravel項目)
- 終端工具(Windows用戶推薦使用Git Bash)

驗證Docker安裝:
```bash
docker --version
docker-compose --version

項目結構規劃

建議采用以下目錄結構:

/laravel-docker
  ├── docker-compose.yml
  ├── php/
  │   └── Dockerfile
  ├── nginx/
  │   ├── nginx.conf
  │   └── sites/
  │       └── laravel.conf
  ├── mysql/
  │   └── my.cnf
  └── src/(Laravel項目代碼)

配置Docker服務

1. 創建docker-compose.yml

version: '3.8'

services:
  # PHP服務
  app:
    build:
      context: ./php
      dockerfile: Dockerfile
    volumes:
      - ./src:/var/www/html
    networks:
      - laravel-network

  # Web服務器
  webserver:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./src:/var/www/html
      - ./nginx/sites:/etc/nginx/conf.d
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    networks:
      - laravel-network

  # 數據庫
  db:
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: rootsecret
    volumes:
      - mysql_data:/var/lib/mysql
      - ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
    ports:
      - "3306:3306"
    networks:
      - laravel-network

  # Redis緩存
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
    networks:
      - laravel-network

volumes:
  mysql_data:
    driver: local

networks:
  laravel-network:
    driver: bridge

2. 配置PHP Dockerfile

FROM php:8.1-fpm

# 安裝系統依賴
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip

# 清除緩存
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# 安裝PHP擴展
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

# 安裝Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# 設置工作目錄
WORKDIR /var/www/html

3. 配置Nginx

nginx/sites/laravel.conf:

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    root /var/www/html/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

創建Laravel項目

  1. 啟動基礎服務:
docker-compose up -d db redis
  1. 使用Composer創建項目:
docker-compose run --rm app composer create-project laravel/laravel src
  1. 設置目錄權限:
docker-compose run --rm app chmod -R 777 src/storage src/bootstrap/cache

配置Laravel環境

  1. 修改.env文件:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret

REDIS_HOST=redis
  1. 啟動所有服務:
docker-compose up -d

驗證安裝

訪問 http://localhost:8080 應該能看到Laravel歡迎頁面。

運行數據庫遷移測試:

docker-compose exec app php artisan migrate

常用命令

  • 進入PHP容器:
docker-compose exec app bash
  • 查看運行中的容器:
docker-compose ps
  • 停止服務:
docker-compose down
  • 重建鏡像(修改Dockerfile后):
docker-compose up -d --build

擴展建議

  1. Xdebug配置:用于PHP調試
  2. Mailhog:本地郵件測試服務
  3. phpMyAdmin:數據庫管理界面
  4. Node.js容器:用于前端資源編譯

常見問題解決

  1. 端口沖突:修改docker-compose.yml中的端口映射
  2. 權限問題:確保storage目錄可寫
  3. 服務啟動失敗:查看日志docker-compose logs [服務名]

結語

通過Docker搭建的Laravel環境具有高度可移植性和一致性,團隊成員可以快速共享相同的開發環境。后續可以進一步優化Docker配置,或將其集成到CI/CD流程中。

提示:本文配置適用于開發環境,生產環境需要額外考慮安全性和性能優化。 “`

這篇文章提供了從零開始搭建Laravel Docker環境的完整指南,包含詳細的配置示例和實用命令。您可以根據實際需求調整PHP版本、數據庫類型等配置參數。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女