用 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,并将密码设置webpasswordFLUSH PRIVILEGES;刷新权限表,使上述权限更改立即生效。EXIT;保存退出数据库
=================================================================
重启环境