(2024)docker-compose实战 (7)部署LAMP项目(未安装扩展)

前言

  1. 在本文中, 将搭建LAMP环境, 还包含redis,但php没有安装扩展(下一篇文章中将讲解如何安装扩展).
  2. 项目目录中需要携带nginx的配置文件(laoliu_pro/conf/default.conf).
  3. 项目文件直接拷贝到项目目录中即可(laoliu_pro/html/).
  4. php连接数据库时, 可将原来的localhost改为"mysql"("容器名").
  5. 如果不确定镜像的配置文件目录, 可以通过 docker inspect 镜像名 来查看具体的配置信息.
  6. 使用docker-compose.yaml时, 请自行去除注释.

目录结构

web/									/web/目录
|
├─ mysql/								mysql目录
|  ├─ conf/ 							配置文件目录
|  |  └─  my.cnf						配置文件
|  ├─ log/ 								日志目录
|  └─ data/								数据目录
|
├─ redis/								redis目录
|  ├─ conf/ 							配置文件目录
|  |  └─  my.cnf						配置文件
|  ├─ log/ 								日志目录
|  └─ data/								数据目录
|
├─ laoliu_pro/							项目目录
|  ├─ conf/ 							nginx配置文件目录
|  |  ├─  php.ini 						php.ini
|  |  └─  000-default.conf				apache配置文件
|  ├─ html/ 							项目目录
|  |  └─  index.html					项目文件, 这里是一个文件, 正常情况下可能会有多个文件
|  └─ log/ 								日志目录
|
└─ docker-compose.yaml					docker-composer的配置文件

docker-compose.yaml配置文件说明

:ro 表示指定该 volume 为只读

version: '3'

services:      
  laoliu_pro:
    image: php:7.3-apache
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./laoliu_pro/log:/var/log/apache2:rw 
      - ./laoliu_pro/html:/var/www/html:rw 
      # apache配置目录
      - ./laoliu_pro/conf/000-default.conf:/etc/apache2/sites-available/000-default.conf:ro
      # php.ini
      - ./laoliu_pro/conf/php.ini:/usr/local/etc/php/php.ini
    container_name: laoliu_pro

  # 服务名
  mysql:
    restart: always
    # mysql镜像, 可选5.7或8
    image: mysql:5.7
    environment:
      # root密码
      MYSQL_ROOT_PASSWORD: 1234@5678
      # 允许远程连接
      MYSQL_ROOT_HOST: '%'
    # 挂载卷 <宿主机路径>:<容器路径>
    volumes:
      # docker时间同步
      - /etc/localtime:/etc/localtime:ro
      # 映射日志目录
      - ./mysql/log:/var/log/mysql
      # 映射配置目录
      - ./mysql/conf:/etc/mysql/mysql.conf.d:rw
      # 映射数据目录
      - ./mysql/data:/var/lib/mysql:rw
    # 容器名称
    container_name: mysql
    # 端口映射 <宿主机端口>:<容器端口>
    ports:
      - 3306:3306


  # 服务名
  redis:
    restart: always
    # redis镜像
    image: redis:5-alpine
    # 挂载卷 <宿主机路径>:<容器路径>
    volumes:
      # docker时间同步
      - /etc/localtime:/etc/localtime:ro
      # 映射配置目录
      - ./redis/conf:/etc/redis:ro
      # 映射数据目录
      - ./redis/data:/data:rw
    # 容器名称
    container_name: redis
    # 端口映射 <宿主机端口>:<容器端口>
    ports:
      - 6379:6379
    hostname: redis
    # 在容器启动后执行的命令
    command: redis-server /etc/redis/redis.conf

apache配置文件

文件路径: /web/laoliu_pro/conf/000-default.conf

<VirtualHost *:80>
    ServerName laoliu.pro
    ServerAlias laoliu.pro
    DocumentRoot /var/www/html/public

    <Directory /var/www/html/public>
	    DirectoryIndex index.php index.html index.htm
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

PHP项目

PHP项目直接部署到/web/laoliu_pro/html中即可. 记得修改数据库配置文件

php.ini

如果需要修改运行内存, 上传设置, 超时时间等, 则需要补充/web/laoliu_pro/conf/php.ini文件. 若只是使用默认设置, 则可以在docker-compose.yaml中去掉php.ini的映射.

启动容器

# 启动容器
docker-compose up -d

启动日志

如果容器启动失败, 可以通过启动日志查看具体的报错信息, 比如容器启动时没有找到配置文件等.

# 查看启动日志
docker-compose logs laoliu_pro

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值