Linux服务器扩容实操指南(ThinkPHP场景)
一、扩容总览与准备
- 明确目标:扩容对象通常是系统盘/数据盘容量、LVM逻辑卷、或新增磁盘挂载;ThinkPHP 作为 PHP 应用,扩容后无需改动代码,但需确保Web 服务与 PHP-FPM 正常、站点目录与日志目录在新空间内或已迁移。
- 操作前务必完成:云控制台快照/备份;确认云盘已扩容完成;规划好停机窗口(非 LVM 场景可能需要短暂停机)。
二、场景一 云盘已扩容 扩展现有分区与文件系统
- 适用:云服务器后台已把磁盘容量加大,系统里看到块设备变大(如 /dev/vdb 从 100G 到 200G),但分区和文件系统仍是旧大小。
- 步骤:
- 安装扩容工具(如未安装)
- CentOS/RHEL:yum install -y cloud-utils-growpart
- 扩展分区表(以磁盘 /dev/vdb 的第一个分区为例)
- 扩展文件系统
- ext 系列:resize2fs /dev/vdb1
- xfs 系列:xfs_growfs /dev/vdb1(注意 xfs 是对挂载点执行:xfs_growfs /mount/point)
- 验证
- 提示:部分旧系统(如 CentOS 6)不支持在线扩容,需联系厂商或采用迁移方式。
三、场景二 LVM 在线扩容(根分区或数据盘)
- 适用:系统使用 LVM(常见于 CentOS 7/8),需要在不重启的情况下把新增空间扩到卷组/逻辑卷。
- 步骤:
- 在线识别新加磁盘(虚拟机/物理机热插后)
- 扫描 SCSI 总线:echo “- - -” > /sys/class/scsi_host/host0/scan(可按需对 host1/host2 执行)
- 创建物理卷并加入卷组
- pvcreate /dev/sdb
- vgextend centos /dev/sdb(卷组名以 vgdisplay 为准)
- 扩展逻辑卷(按需选择其一)
- 扩展到指定大小:lvextend -L 120G /dev/mapper/centos-root
- 增加容量:lvextend -L +20G /dev/mapper/centos-root
- 扩展文件系统
- ext4:resize2fs /dev/mapper/centos-root
- xfs:xfs_growfs /(对挂载点执行)
- 验证
- df -h、lvdisplay、vgdisplay 查看新容量
- 说明:上述命令中的卷组名(如 centos)、逻辑卷路径(如 /dev/mapper/centos-root)以实际环境为准。
四、场景三 新增磁盘并挂载到 ThinkPHP 目录
- 适用:新增一块数据盘专门放上传文件/日志/缓存等,避免挤占系统盘。
- 步骤:
- 查看并分区
- lsblk、fdisk /dev/sdb → n → p → 回车默认 → w
- 格式化
- mkfs.ext4 /dev/sdb1(或 mkfs.xfs /dev/sdb1)
- 挂载到业务目录(示例:/var/www/uploads)
- mkdir -p /var/www/uploads
- mount /dev/sdb1 /var/www/uploads
- 开机自动挂载
- 建议用 UUID 写入 /etc/fstab:blkid 获取 /dev/sdb1 的 UUID,然后
- echo “UUID=xxxx-xxxx /var/www/uploads ext4 defaults 0 0” >> /etc/fstab
- 迁移数据并设置权限
- 停 Web/PHP:systemctl stop nginx php-fpm
- 迁移:rsync -a /old/path/ /var/www/uploads/
- 权限:chown -R www-data:www-data /var/www/uploads(用户组以实际运行用户为准)
- 启动:systemctl start nginx php-fpm
- 验证
- df -h 确认挂载成功;业务前台/接口上传测试。
五、ThinkPHP 与运维注意事项
- 站点目录与日志目录:若扩容涉及 /var/www 或 /var/log,需确保目录在新空间或已迁移,且 Nginx/PHP-FPM 对相关目录有读写权限。
- 配置检查:确认 Nginx root 指向 public 目录,PHP-FPM 监听与权限正确;必要时重载服务:systemctl reload nginx、systemctl reload php-fpm。
- 分布式扩展:若扩容是为承载更高并发,可结合 Nginx 负载均衡、Redis 共享 Session、对象存储(如七牛/OSS)托管上传文件,横向扩展多台应用服务器。