LDCMP(linux+docker+caddy+mariadb+php) 简单使用方法

197 阅读2分钟

用 caddy最大的好处就是不用考虑 https 证书的问题, caddy 自动会帮我搞定, 省心

第一步 先安装 Docker 和 Docker-compose

curl -fsSL https://get.docker.com | sh && ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin

第二步 定个地方创建文件夹 wwwroot目录,把相关内容都放这个目录下

 cd /home
 mkdir -p wwwroot wwwroot/site
 cd wwwroot
 touch docker-compose.yml Caddyfile

第三步 修改 docker-compose.yml 文件, 内容如下

services:
  caddy:
    image: caddy:latest
    container_name: caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/srv
    depends_on:
      - php

  php:
    image: php:8.0-fpm
    container_name: php
    volumes:
      - ./site:/srv
    depends_on:
      - db

  db:
    image: mariadb:latest
    container_name: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: root用户密码(生产环境为安全考虑不要这样用)
      MYSQL_DATABASE: 数据库名称
      MYSQL_USER: 新建用户名
      MYSQL_PASSWORD: 密码
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

第四步 修改caddy 的配置文件 Caddyfile, 内容如下

www.example.com {
    root * /srv

    encode gzip

    php_fastcgi php:9000

    file_server
}

第五步 把网站文件上传到/home/wwwroot/site 目录下, 检查文件结构

/home目录
  |---wwwroot目录
      |---Caddyfile文件
      |---docker-compose.yml文件
      |---site目录
          |---index.php
          |---网站其它文件和目录
     

检查无误后启动docker

cd /home/wwwroot
docker-compose up -d

1 如果有权限问题用 chmod 解决

2 如果访问报"ERR_SSL_PROTOCOL_ERROR"错, 就换个域名, 可能是调试的时候当前域名申请了太多次证书被短期内限制申请新证书了

3 很多网站要用的 php 扩展比如 gd,mysqli 可以用下面的命令安装

docker exec -it php容器名称 bash

apt update && apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev 

docker-php-source extract

cd /usr/src/php/ext/gd

docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2

docker-php-ext-install gd mysqli 

#安装完成后查看是否成功,有输出内容代表成功
php -m | grep gd 
php -m | grep mysql