服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-15 简米科技 3,914 字 9 分钟阅读

lamp环境如何添加虚拟机详细步骤?,虚拟机添加方法有哪些

导读lamp环境添加虚拟机前先分清三种类型LAMP环境添加虚拟机,核心是在同一台服务器上通过LVM划分独立分区给不同项目使用,或直接用Docker做环境隔离,两者操作完全不同,下面给出以LVM方式为主的详细步骤,很多人一听到“虚拟机”就想到VMware或KVM,但在LAMP环境里,所谓的“添加虚拟机”往往指的是另一……

lamp环境添加虚拟机前先分清三种类型

LAMP环境添加虚拟机,核心是在同一台服务器上通过LVM划分独立分区给不同项目使用,或直接用Docker做环境隔离,两者操作完全不同,下面给出以LVM方式为主的详细步骤。

很多人一听到“虚拟机”就想到VMware或KVM,但在LAMP环境里,所谓的“添加虚拟机”往往指的是另一回事,日常运维中,大家口里的“虚拟机”通常分三种:LVM逻辑卷隔离环境、Docker容器、真正的独立虚拟机软件,行业共识认为,在生产环境操作前必须先想明白自己要的是哪一种,否则很容易把服务器弄崩溃。

三种方式的区别

  • LVM逻辑卷:把一块物理硬盘划分成多个“逻辑磁盘”,每个项目各用各的挂载点,比如/data/www/web1和/data/www/web2,资源隔离靠分区实现,Nginx和MySQL仍在宿主机上跑。
  • Docker容器:把每个项目的PHP、MySQL、Nginx装在容器里,独立性强,镜像管理方便,适合多版本PHP共存。
  • 独立虚拟机软件:比如在Linux上再装KVM,每个虚拟一个完整系统,资源占用极大,普通VPS根本不现实。

绝大多数人需要的其实是第一种,也就是通过LVM给不同项目添加独立运行空间,下面以CentOS 7.9系统、Apache/Nginx环境为例,给出完整命令流程。

lamp环境用虚拟机还是docker对比

先说结论:如果你的网站数量少、访问量稳定,LVM逻辑卷足够用;如果你要频繁切换PHP版本、隔离每个站点的数据库,docker更顺手,两者没法完全互相替代。

对比项 LVM逻辑卷 Docker容器
隔离力度 仅磁盘分区隔离 文件、进程、网络全隔离
磁盘占用 几乎没有额外开销 每个镜像几百MB到1GB
性能损耗 几乎为零 轻微损耗,可忽略
学习成本 低,几条命令搞定 中,需要理解镜像和编排
适合场景 低配服务器、单IP多项目 PHP等多版本共存、微服务

业内专家指出,很多宝塔面板用户的“添加虚拟机”需求,其实就是想多建几个站且互不干扰,这种情况用LVM加目录权限控制更省内存。

lamp环境如何添加虚拟机详细步骤?,虚拟机添加方法有哪些

宝塔面板lamp环境添加虚拟机后再数据迁移要注意什么

如果你用的是宝塔面板,面板自带“磁盘挂载”工具,可以把新磁盘直接挂载到网站目录,这里有个容易踩坑的点:挂载操作必须在新站点创建之前完成,否则网站已经写入数据,你再挂载一块空磁盘到该目录,原数据会被“遮住”,看起来像文件全丢了,正确流程是先在/www/wwwroot/下用mkdir建好站点的父级目录并挂载,再去面板里添加站点。

迁移数据时用rsync命令最稳妥:

rsync -avz --progress /原网站路径/ /挂载后路径/

跑完再去宝塔里重启Nginx和PHP-FPM,网站就完全切过去了。

lamp环境添加虚拟机详细步骤:以LVM逻辑卷为例

下面这套流程适用于已有LAMP环境(Apache/Nginx + MySQL + PHP),物理机或云服务器均可。

第一步:查看现有磁盘布局

先确认你手头有没有空闲磁盘,用下面的命令看:

fdisk -l
df -h

fdisk -l列出所有物理磁盘,df -h看当前分区占用,如果发现有一块未分区的盘,比如/dev/vdb或/dev/sdb,那就是为“虚拟机”准备的地基。系统盘建议预留30%以上空间给日志和临时文件,数据盘则可以全部投入逻辑卷。

第二步:创建物理卷和卷组

假设新磁盘是/dev/vdb,依次执行:

pvcreate /dev/vdb
vgcreate vg_lamp /dev/vdb

vg_lamp是卷组名,你可以改成自己认识的名字,这一步相当于把一整块硬盘变成一个“空间池子”,之后所有逻辑卷都从这个池子里分。

第三步:创建逻辑卷并格式化

比如我要给一个叫“blog”的站点分20G,执行:

lvcreate -L 20G -n lv_blog vg_lamp
mkfs.ext4 /dev/vg_lamp/lv_blog

这里-L 20G是容量大小,-n lv_blog是逻辑卷名。如果以后空间不够,后面直接在线扩容即可,不用重新格式化。

第四步:挂载到网站目录

lamp环境如何添加虚拟机详细步骤?,虚拟机添加方法有哪些

mkdir -p /data/www/blog mount /dev/vg_lamp/lv_blog /data/www/blog

挂载后确认一下:

df -h | grep blog

看到/dev/mapper/vg_lamp-lv_blog挂在/data/www/blog下就没问题,接着把LAMP里该站点的Apache虚拟主机或Nginx的root指到这个目录,重启web服务即可生效。

第五步:开机自动挂载

如果不写进/etc/fstab,服务器一重启,挂载就消失了,网站目录会变成空文件夹,编辑文件:

vi /etc/fstab

在末尾加一行:

/dev/vg_lamp/lv_blog  /data/www/blog  ext4  defaults  0  0

保存后执行mount -a测试,没有报错说明配置正确。

第六步:在线扩容逻辑卷

项目数据涨得比你预想快,20G不够了,直接扩大:

lvextend -L +10G /dev/vg_lamp/lv_blog
resize2fs /dev/vg_lamp/lv_blog

这是LVM最爽的地方,网站运行期间就能扩容,不用停机,不用搬家,但前提是卷组里还有空闲空间,可以用vgdisplay查看剩余量。

镜像源配置与系统盘空间规划

添加虚拟机前还有一个准备工作:确认你的软件源状态,国内服务器经常遇到yum或apt源下载慢,导致安装依赖包超时,建议在动手前把源切换成国内镜像站,比如简米云镜像站或清华TUNA镜像源,以CentOS为例:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache

这一步虽小,但能避免后续装扩展包时卡半小时的事故。

系统盘规划上要遵循一个原则:网站代码、数据库文件、日志目录这三个尽量分别放在不同的逻辑卷上,日志所在逻辑卷可以单独开小一点,比如5G,设置logrotate自动清理;数据库目录独立挂载,方便以后单独备份或迁移,这样做的价值很实在:万一一个站点的磁盘满打爆,不会拖垮整个LAMP环境。

挂载失败与运行内存不足的处理

实际部署中常见两类问题,这两个问题几乎每个做LVM的人都会撞上一次。

挂载失败排查

挂载时报错

lamp环境如何添加虚拟机详细步骤?,虚拟机添加方法有哪些

mount: wrong fs type,多数原因是没格式化,检查一下:

file -s /dev/vg_lamp/lv_blog

如果显示data而不是ext4 filesystem,说明确实没格式化,另一种情况是/etc/fstab写错了,这时候重启机器会进紧急模式,遇到紧急模式别慌,输root密码,执行:

mount -o remount,rw /
vi /etc/fstab

把那行错误的记录删掉或改对,再重启就恢复。

运行内存跟不上怎么办

添加逻辑卷不占内存,但如果你最终用了docker方式会给内存带来压力,统计表明,多数低配VPS配上宝塔和两三个容器,内存就告急,查看占用:

free -h

可用空间小于500M时,建议加swap,快速创建2G交换分区:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

同时写入/etc/fstab确保重启后依然生效,注意swap是应急手段,只靠swap顶着是治标不治本,长期占用会导致磁盘I/O飙升,网站会明显变卡,真要稳定,不如升级到2G以上内存的机器,一年成本也就多几百块,对站点的保障却非常扎实。

lamp环境添加虚拟机常见问题解答

lamp环境添加虚拟机后原有网站会受影响吗?

不会,逻辑卷是独立分配空间,挂载路径只要不和原有目录重叠,对现有网站零影响,唯一要注意的是挂载前先建好目录,并确认目录权限为www用户或www-data用户,否则Nginx/Apache写入时会报403错误。

lamp环境添加虚拟机用什么镜像源更稳?

国内服务器推荐简米云镜像站,境外服务器直接用系统官方源即可,修改源时先备份原repo文件,更换后执行缓存更新,再用yum install -y vim测试安装速度,整个过程三分钟不到,值得每次环境初始化时都做。

lamp环境添加虚拟机后系统盘不够用怎么办?

把系统盘上体积较大的目录迁到逻辑卷上,比如/var/lib/mysql占了很多空间,先停止MySQL服务,用rsync把整个目录复制到挂载好的逻辑卷目录,然后修改/etc/my.cnf里的datadir路径,再启动MySQL服务,数据库文件建议放在独立逻辑卷上,方便备份和扩容。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱