Skip to content
lotro@live.cn
  • 顺遂无虞 皆得所愿

Docker Compose迁移我的WordPress

凡叔 2026-02-09 2 545
☖
root@localhost:~# cat /home/docker-compose.yml 
services:

  caddy:
    image: caddy:2-alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    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
    container_name: php
    restart: unless-stopped
    depends_on:
      - db
    volumes:
      - /home/wwwroot/lotro.cc:/var/www/html
      - /home/php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    networks:
      - wp-net

  db:
    image: mysql:8.0
    container_name: mysql
    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@localhost:~# cat /home/caddy/Caddyfile 
lotro.cc, www.lotro.cc {
	# 根目录
	tls admin@live.cn
	root * /srv/lotro.cc
	# PHP-FPM 转发 + 内置的 WordPress-friendly rewrites
	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
	header /wpad.dat Content-Type application/x-ns-proxy-autoconfig;

	# 压缩
	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
	}

	# 日志(调试时打开)
	# log {
	#     output file /var/log/caddy/access.log
	# }
}
root@localhost:~# cat /home/php/uploads.ini 
date.timezone = Asia/Shanghai
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
expose_php = Off
# 数据库导入
zcat wplotro-2026-09-02.sql.gz | docker exec -i mysql mysql -u root -p'你的root密码' 数据库名

# 停掉所有容器
docker compose down

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

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

# 再启动
docker compose up -d
docker compose

2 Comments

  1. 123说道:
    2026-02-12 14:27

    这个能用于discuz x3.5吗?

    回复
    1. 321说道:
      2026-02-12 16:56

      完全可行,参考http://lotro.cc/discuz

      回复

发表回复 取消回复

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

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

© 2026 吉喜. Theme by Rabbit Lite.