docker compose迁移我的WordPress

root@lotro:/home# cat docker-compose.yml 
services:

  caddy:
    image: caddy:2-alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"     # http3 支持(可选)
    volumes:
      - /home/caddy/Caddyfile:/etc/caddy/Caddyfile
      - /home/caddy/data:/data
      - /home/caddy/config:/config
      - /home/wwwroot:/srv:ro           # 全部网站放在这里(只读更安全)
    networks:
      - wp-net

  wordpress:
    image: wordpress:php8.3-fpm-alpine   # 2025-2026 推荐使用 php8.3 或更高
    container_name: wp-lotro
    restart: unless-stopped
    depends_on:
      - db
    volumes:
      - /home/wwwroot/lotro.cc:/var/www/html
    networks:
      - wp-net

  db:
    image: mysql:8.0
    container_name: mysql-lotro
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root密码
      MYSQL_DATABASE: 数据库名
      MYSQL_USER: 用户名
      MYSQL_PASSWORD: 密码
    volumes:
      - /home/mysql:/var/lib/mysql
    networks:
      - wp-net

networks:
  wp-net:
    driver: bridge
root@lotro:/home# cat caddy/Caddyfile 
lotro.cc, www.lotro.cc {
	tls lotro@live.cn
	root * /srv/lotro.cc
	php_fastcgi wordpress:9000 {
		root /var/www/html
		env PATH_INFO {path}
		dial_timeout 5s
		read_timeout 360s
		write_timeout 360s
	}

	# 静态文件直接 serve(php_fastcgi 已经处理了大部分 rewrite)
	file_server

	# 压缩
	encode zstd gzip

	# 安全响应头(推荐)
	header {
		X-Frame-Options SAMEORIGIN
		X-Content-Type-Options nosniff
		Strict-Transport-Security "max-age=31536000;"
		Referrer-Policy strict-origin-when-cross-origin
		-Server
	}
}
# 停掉 mysql 容器
docker compose down

# 修改目录所有者
chown -R 999:999 /home/mysql
chown -R 82:82 /home/wwwroot/lotro.cc

# 目录权限
find /home/mysql -type d -exec chmod 750 {} \;
find /home/mysql -type f -exec chmod 640 {} \;

# 再启动
docker compose up -d

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理