用 caddy+php+mysql 快速搭建网站!

创建目录结构

mkdir -p /home/caddy/{caddy_data,www,mysql}
touch /home/caddy/Caddyfile

创建docker-compose.yml

version: '3.9'
services:
  caddy:
    image: caddy:latest
    container_name: caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /home/caddy/Caddyfile:/etc/caddy/Caddyfile
      - /home/caddy/www:/srv
      - /home/caddy/caddy_data:/data/caddy/
    restart: always
  php:
    image: php:8.2-fpm-alpine
    container_name: php
    volumes:
      - /home/caddy/www:/srv
    restart: always
  mariadb:
    image: linuxserver/mariadb:10.11.10
    container_name: mariadb
    restart: always
    volumes:
      - /home/caddy/mysql:/config
    environment:
      MYSQL_ROOT_PASSWORD: 123456789 #记得改密码

  redis:
    image: redis
    container_name: redis
    restart: always
    volumes:
      - /home/caddy/redis:/data
volumes:
  www: {}

配置Caddyfile

:80 {
    root * /srv    #/srv映射目录为www,如www目录下的abc为站点目录,需加上abc  /srv/abc
    php_fastcgi php:9000  # 转发 PHP 请求到 PHP 服务的 9000 端口
    file_server
}
#反代配置
abc.com { #你的域名
tls 你的邮箱
encode gzip
reverse_proxy localhost:8080  #不在同一网络改为IP,端口改为你反代的端口
}

docker-compose.yml所在目录下运行
(如使用podman容器技术,先安装podman-docker,debian/ubuntu:apt install podman-docker)

docker-compose up -d

如部署wordpress需安装PHP拓展

docker exec -it php install-php-extensions mysqli gd intl zip opcache
docker exec -it php install-php-extensions exif imagick redis
docker exec caddy sh -c 'echo "upload_max_filesize=50M \n post_max_size=50M" > /usr/local/etc/php/conf.d/uploads.ini'
docker exec caddy sh -c 'echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory.ini'
docker exec caddy sh -c 'echo "max_execution_time=1200" > /usr/local/etc/php/conf.d/max_execution_time.ini'
docker exec caddy sh -c 'echo "max_input_time=600" > /usr/local/etc/php/conf.d/max_input_time.ini'

如无法安装拓展,先在PHP容器安装php-extensions插件

curl -fsSL https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o /usr/local/bin/install-php-extensions
# 添加执行权限
chmod +x /usr/local/bin/install-php-extensions

创建数据库

docker exec -it mariadb mysql -u root -p 进入root用户数据库,输入你修改后的数据库密码

CREATE DATABASE web1; 创建数据库名web1

GRANT ALL PRIVILEGES ON web1.* TO 'webuser'@'%' IDENTIFIED BY 'webpassword'; 授权给创建的普通用户webuser,并将密码设置webpassword
FLUSH PRIVILEGES;刷新权限表,使上述权限更改立即生效。
EXIT;保存退出数据库

=================================================================
重启环境

添加新评论