宝塔面板磁盘挂载与网站目录迁移:/www 换盘后的路径、权限与面板数据同步

    发布时间:2026-09-24 05:00 更新时间:2026-09-24 05:00 阅读量:0

    服务器跑久了,/www 所在的系统盘先撑不住:日志、备份、上传附件、MySQL 数据都堆在这一个分区上,df 一看根分区剩几百兆,网站随时可能因为写不进去而报错。常见的处理办法是加一块数据盘,把 /www 整体搬到新盘上。听起来只是 mv 一下,实际操作里挂载点没写进 fstab 会导致重启后目录“空掉”,属主不对会导致面板和 PHP 报权限错误,面板数据库里的站点路径没跟着改则可能新建站点指向旧位置。这篇按换盘场景把这几件事串起来讲。

    一、先把新盘挂到 /www,并确认重启后仍然生效

    假设新盘识别为 /dev/vdb(具体设备名以 lsblk 实际输出为准),推荐的做法是:先把新盘挂到一个临时目录,把旧数据整体复制过去,确认无误后再切换挂载点。不要直接对正在使用的 /www 做操作。

    第一步,查看设备与分区情况,确认新盘没有重要数据:

    lsblk
    fdisk -l /dev/vdb

    第二步,给新盘分区并格式化。文件系统按需选择,ext4 通用性好,xfs 在大文件场景表现稳定,两者都可以,这里以 ext4 为例:

    mkfs.ext4 /dev/vdb1
    mkdir -p /mnt/newdisk
    mount /dev/vdb1 /mnt/newdisk

    第三步,用 rsync 把 /www 完整复制到新盘。注意保留属主、属组、权限、软链接与扩展属性,这几个参数缺一不可:

    rsync -aAXH --numeric-ids /www/ /mnt/newdisk/www/

    复制完成后先做一次比对,确认文件数量没有明显差异,再决定切换。切换时建议先停面板与 Web 服务,避免迁移过程中还有写入:

    /etc/init.d/bt stop
    systemctl stop nginx php-fpm mysqld

    然后改挂载点:把旧 /www 改名备份(例如 /www_old),新建空的 /www 目录,卸载临时挂载,把新盘直接挂到 /www 上,并把这条记录写入 /etc/fstab,否则重启后挂载会丢失。fstab 建议使用 UUID,比设备名更稳妥,UUID 用 blkid 查询:

    umount /mnt/newdisk
    mv /www /www_old
    mkdir /www
    mount /dev/vdb1 /www
    blkid /dev/vdb1

    拿到 UUID 后编辑 /etc/fstab,追加一行(UUID 与文件系统类型以实际为准):

    UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /www ext4 defaults 0 0

    写完后不要急着重启,先执行 mount -a 验证 fstab 语法正确、没有报错,再 df -h 确认 /www 挂的是新盘。这一步做错,机器重启后 /www 会落回根分区上的空目录,网站全部 404。

    二、属主权限与面板站点记录怎么保持一致

    宝塔的网站文件默认属主是 www:www,权限目录 755、文件 644。rsync 用了 -a 会保留这些属性,但有两个细节容易翻车。一是如果迁移时用了普通用户而非 root,属主会被改成当前用户;二是 SELinux 开启的环境下,新盘挂载后安全上下文可能不对。前者用 chown -R www:www /www/wwwroot 修复,后者按发行版文档用 restorecon 或直接确认 SELinux 状态后再处理。

    属主修好后,逐个站点目录确认一遍,尤其是上传目录、缓存目录和 session 目录:

    ls -ld /www/wwwroot/example.com
    chown -R www:www /www/wwwroot/example.com
    find /www/wwwroot/example.com -type d -exec chmod 755 {} \;
    find /www/wwwroot/example.com -type f -exec chmod 644 {} \;

    接下来是面板数据同步。宝塔的面板数据默认在 /www/server/panel/data 下,站点配置、数据库记录、计划任务都在里面。如果只迁移了 /www/wwwroot 而没带上 server 目录,面板登录后会看到站点列表正常但实际路径全是旧盘地址,或者干脆站点消失。所以 rsync 时一定要覆盖整个 /www,而不是只搬 wwwroot。

    对数据库要额外留心。宝塔的 MySQL 数据目录通常在 /www/server/data,迁移后要确认 datadir 指向新路径,并检查 my.cnf 里是否有硬编码的旧路径。MySQL 对数据目录的属主和权限要求比较严格,一般属主为 mysql:mysql,权限 750 左右,具体以你当前环境的 my.cnf 与官方文档为准。启动前可先看错误日志定位问题:

    grep -i datadir /etc/my.cnf
    tail -n 50 /www/server/data/*.err

    面板自身也需要重启来重新读取路径。启动顺序建议是:先 MySQL,再 PHP-FPM,再 Nginx,最后 bt。启动后登录面板,逐个站点打开“网站目录”,确认显示的根目录确实在新盘上;再进数据库页面,确认数据库列表和连接正常。如果面板显示异常,可以尝试重启面板服务 /etc/init.d/bt restart,仍不正常时再对照面板日志排查。

    三、收尾校验与常见坑

    切换完成后做几件事:一是 df -h 与 du -sh /www 对一下容量,确认新盘够用;二是访问网站首页、后台、上传一张图片,验证读写都正常;三是检查计划任务里的备份路径,如果有写死旧盘路径的脚本要一并更新;四是确认没有进程还引用着 /www_old,确认稳定运行几天后再删除旧目录释放空间。

    几个高频坑提醒一下:fstab 没写或写错导致重启后目录为空;rsync 少写斜杠,把 /www 塞进新盘的 /www/www 里;只搬了网站文件没搬面板数据,站点记录与实际目录对不上;MySQL 数据目录属主没改导致服务起不来。把这几点在切换前逐条核对,换盘这件事基本就不会出大问题。建议先在测试环境按同样步骤走一遍,再对生产服务器动手。

    继续阅读

    📑 📅
    网站被CDN缓存住旧页面:缓存键、边缘刷新与源站头冲突排查 2026-09-24
    Nginx 一张证书配多个域名:SAN 填写与漏配排查 2026-09-24
    网站切HTTPS后百度统计没数据:referrer、混合内容与代码位置排查 2026-09-23
    宝塔面板SSL证书手动替换:证书链、私钥校验与reload排查 2026-09-23
    WordPress后台自动更新失败:权限、FTP常量与目录属主逐项定位 2026-09-23
    WordPress改文章前台不变:三层缓存清理顺序与验证 2026-09-24
    WordPress数据库连不上但宝塔显示正常:主机名与socket排查 2026-09-24
    宝塔面板Nginx伪静态改了不生效:规则文件位置与重载验证 2026-09-24
    WordPress 开启 HTTPS 后台重定向循环:is_ssl 与反代头排查 2026-09-24
    域名下手机跳m站收录分散:自适应与跳转取舍 2026-09-24