完整安装流程
第1步:挂载大容量硬盘
# 查看硬盘
sudo fdisk -l
# 挂载大容量硬盘(假设是/dev/sda1)
sudo mkdir -p /mnt/big_disk
sudo mount /dev/sda1 /mnt/big_disk
# 设置开机自动挂载
sudo blkid /dev/sda1 # 获取UUID
echo "UUID=你的硬盘UUID /mnt/big_disk ext4 defaults,nofail 0 0" | sudo tee -a /etc/fstab
第2步:安装Docker和Docker Compose
# 更新系统
sudo apt update
# 安装Docker
sudo apt install -y docker.io
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-aarch64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
第3步:配置Docker使用大容量硬盘
# 创建Docker数据目录
sudo mkdir -p /mnt/big_disk/docker
# 配置Docker数据存储位置
sudo tee /etc/docker/daemon.json << 'EOF'
{
"data-root": "/mnt/big_disk/docker"
}
EOF
# 重启Docker
sudo systemctl restart docker
第4步:创建WordPress项目
# 创建项目目录
sudo mkdir -p /mnt/big_disk/wordpress
sudo chown -R $USER:$USER /mnt/big_disk/wordpress
cd /mnt/big_disk/wordpress
# 创建docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
db:
image: mysql:8.0
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ChangeMeRoot123!
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: WordPressDBPass456!
volumes:
- ./mysql_data:/var/lib/mysql
command:
- --default-authentication-plugin=mysql_native_password
wordpress:
image: wordpress:latest
restart: unless-stopped
depends_on:
- db
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: WordPressDBPass456!
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wordpress_data:/var/www/html
networks:
default:
driver: bridge
EOF
# 创建数据目录
mkdir -p mysql_data wordpress_data
chmod 775 mysql_data wordpress_data
第5步:启动WordPress
# 拉取镜像(如果网络慢可跳过,会自动拉取)
docker pull mysql:8.0
docker pull wordpress:latest
# 启动服务
docker-compose up -d
# 验证
sleep 20
docker-compose ps
echo "访问: http://$(hostname -I | awk '{print $1}')"
第6步:设置开机自启动(重要!)
方法A:使用systemd服务(推荐)
# 创建systemd服务文件
sudo tee /etc/systemd/system/wordpress-docker.service << 'EOF'
[Unit]
Description=WordPress Docker Compose
Requires=docker.service
After=docker.service network.target
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/mnt/big_disk/wordpress
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
User=root
[Install]
WantedBy=multi-user.target
EOF
# 启用服务
sudo systemctl daemon-reload
sudo systemctl enable wordpress-docker
sudo systemctl start wordpress-docker
# 检查状态
sudo systemctl status wordpress-docker
第7步:创建管理脚本
cat > wp-manager.sh << 'EOF'
#!/bin/bash
cd /mnt/big_disk/wordpress
case "$1" in
start)
docker-compose up -d
echo "WordPress已启动"
;;
stop)
docker-compose down
echo "WordPress已停止"
;;
restart)
docker-compose restart
echo "WordPress已重启"
;;
status)
echo "容器状态:"
docker-compose ps
echo ""
echo "服务状态:"
curl -s -o /dev/null -w "HTTP: %{http_code}\n" http://localhost 2>/dev/null || echo "无法连接"
;;
logs)
docker-compose logs -f
;;
backup)
DATE=\$(date +%Y%m%d_%H%M%S)
mkdir -p backups
docker-compose exec -T db mysqldump -u wordpress -pWordPressDBPass456! wordpress > backups/wordpress_db_\$DATE.sql
tar -czf backups/wordpress_files_\$DATE.tar.gz wordpress_data
echo "备份完成: backups/\$DATE.tar.gz"
;;
*)
echo "用法: \$0 {start|stop|restart|status|logs|backup}"
exit 1
;;
esac
EOF
chmod +x wp-manager.sh
第8步:创建自动修复脚本(防止启动失败) 没用上
cat > auto-repair.sh << 'EOF'
#!/bin/bash
cd /mnt/big_disk/wordpress
# 检查服务是否运行
if ! docker-compose ps | grep -q "Up"; then
echo "检测到服务未运行,正在修复..."
# 停止并清理
docker-compose down 2>/dev/null
# 修复数据目录权限
sudo chown -R 999:999 mysql_data 2>/dev/null
sudo chown -R 1000:1000 wordpress_data 2>/dev/null
# 重启服务
docker-compose up -d
# 检查结果
sleep 10
if docker-compose ps | grep -q "Up"; then
echo "✅ 服务修复成功"
else
echo "❌ 服务修复失败,查看日志:"
docker-compose logs --tail=20
fi
else
echo "✅ 服务运行正常"
fi
EOF
chmod +x auto-repair.sh
# 添加定时检查(每5分钟检查一次)
(crontab -l 2>/dev/null; echo "*/5 * * * * cd /mnt/big_disk/wordpress && ./auto-repair.sh >> /mnt/big_disk/wordpress/auto-repair.log 2>&1") | crontab -
第10步:最终配置检查清单 没用上
cat > check-install.sh << 'EOF'
#!/bin/bash
echo "=== WordPress安装验证 ==="
echo "1. 硬盘挂载:"
df -h /mnt/big_disk
echo -e "\n2. Docker状态:"
sudo systemctl status docker --no-pager | grep Active
echo -e "\n3. Docker Compose:"
docker-compose --version
echo -e "\n4. 自启动服务:"
sudo systemctl is-enabled wordpress-docker 2>/dev/null && echo "✅ systemd服务已启用" || echo "❌ systemd服务未启用"
echo -e "\n5. 容器状态:"
cd /mnt/big_disk/wordpress 2>/dev/null && docker-compose ps || echo "未找到项目目录"
echo -e "\n6. 网站访问:"
IP=$(hostname -I | awk '{print $1}' 2>/dev/null)
[ -n "$IP" ] && echo "访问地址: http://$IP" || echo "无法获取IP地址"
echo -e "\n7. 管理命令:"
echo "启动: ./wp-manager.sh start"
echo "停止: ./wp-manager.sh stop"
echo "状态: ./wp-manager.sh status"
echo "日志: ./wp-manager.sh logs"
EOF
chmod +x check-install.sh
一键安装脚本(完整版) 没用上
cat > install-wordpress.sh << 'EOF'
#!/bin/bash
set -e
echo "=== WordPress一键安装脚本 ==="
# 1. 挂载硬盘
echo "1. 挂载大容量硬盘..."
sudo mkdir -p /mnt/big_disk
sudo mount /dev/sda1 /mnt/big_disk 2>/dev/null || echo "挂载失败或已挂载"
# 2. 安装Docker
echo "2. 安装Docker..."
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
# 3. 安装Docker Compose
echo "3. 安装Docker Compose..."
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-aarch64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 4. 配置Docker存储
echo "4. 配置Docker..."
sudo mkdir -p /mnt/big_disk/docker
sudo tee /etc/docker/daemon.json << 'DOCKER'
{
"data-root": "/mnt/big_disk/docker"
}
DOCKER
sudo systemctl restart docker
# 5. 创建WordPress项目
echo "5. 创建WordPress项目..."
sudo mkdir -p /mnt/big_disk/wordpress
sudo chown -R $USER:$USER /mnt/big_disk/wordpress
cd /mnt/big_disk/wordpress
cat > docker-compose.yml << 'COMPOSE'
version: '3.8'
services:
db:
image: mysql:8.0
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root123
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress123
volumes:
- ./mysql_data:/var/lib/mysql
command:
- --default-authentication-plugin=mysql_native_password
wordpress:
image: wordpress:latest
restart: unless-stopped
depends_on:
- db
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress123
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wordpress_data:/var/www/html
COMPOSE
mkdir -p mysql_data wordpress_data
chmod 775 mysql_data wordpress_data
# 6. 启动服务
echo "6. 启动WordPress..."
docker-compose up -d
# 7. 设置开机自启动
echo "7. 设置开机自启动..."
sudo tee /etc/systemd/system/wordpress-docker.service << 'SERVICE'
[Unit]
Description=WordPress Docker Compose
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/mnt/big_disk/wordpress
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
User=root
[Install]
WantedBy=multi-user.target
SERVICE
sudo systemctl daemon-reload
sudo systemctl enable wordpress-docker
# 8. 创建管理脚本
echo "8. 创建管理工具..."
cat > wp-manager.sh << 'MANAGER'
#!/bin/bash
cd /mnt/big_disk/wordpress
case "\$1" in
start) docker-compose up -d ;;
stop) docker-compose down ;;
restart) docker-compose restart ;;
status) docker-compose ps ;;
logs) docker-compose logs -f ;;
*) echo "用法: \$0 {start|stop|restart|status|logs}" ;;
esac
MANAGER
chmod +x wp-manager.sh
# 9. 完成
echo "等待服务启动..."
sleep 30
echo -e "\n🎉 WordPress安装完成!"
echo "访问地址: http://\$(hostname -I | awk '{print \$1}')"
echo "管理命令: cd /mnt/big_disk/wordpress && ./wp-manager.sh"
echo "开机自启动: 已启用"
EOF
chmod +x install-wordpress.sh
精简命令,执行这些就够了!
挂载硬盘:
sudo mount /dev/sda1 /mnt/big_disk
安装Docker和Docker Compose:
sudo apt update && sudo apt install -y docker.io
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-aarch64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
创建WordPress项目:
cd /mnt/big_disk
sudo mkdir -p wordpress docker
sudo chown -R $USER:$USER wordpress
cd wordpress
# 创建docker-compose.yml(使用上面的内容)
mkdir -p mysql_data wordpress_data
设置开机自启动:
sudo tee /etc/systemd/system/wordpress-docker.service << 'EOF'
[Unit]
Description=WordPress Docker Compose
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/mnt/big_disk/wordpress
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
User=root
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable wordpress-docker
启动服务:
docker-compose up -d
验证:
docker-compose ps
echo "访问: http://$(hostname -I | awk '{print $1}')"
2026年1月7日
访问和管理Docker中的MySQL数据库
3.1 进入MySQL容器
# 方法1:使用docker-compose cd /mnt/big_disk/wordpress docker-compose exec db bash # 进入容器后连接MySQL mysql -u wordpress -pWordPressDBPass456! wordpress
3.2 或者直接连接
# 方法2:直接执行MySQL命令 docker-compose exec db mysql -u wordpress -pWordPressDBPass456! wordpress # 方法3:使用docker exec docker exec -it wordpress-db-1 mysql -u wordpress -pWordPressDBPass456! wordpress
3.3 查看数据库信息
# 在MySQL命令行中 SHOW DATABASES; USE wordpress; SHOW TABLES; SELECT COUNT(*) FROM wp_posts; # 查看文章数量
2026年4月18日
配置https:支持u.kkjs.cc需要修改wordpress目录下的config.php文件
主要解决wordpress配置成功了https,但是部分css样式还是链接http的情况
ubuntu下查找config.php文件
find /mnt/big_disk/wordpress/wordpress_data -name "config.php"
编辑 wp-config.php:在 <?php 这一行的下面,添加以下两行代码。
<?php
define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS'] = 'on';
/**
* WordPress基础配置文件。
*/