VPS挂载数据盘到home目录不改变原有WordPress网站数据最新操作设置图文教程

对于很多使用VPS主机的小伙伴,都没有注意到VPS主机商有没有提供数据盘,比如购买的VPS主机包含系统盘30G…

IMG_0

对于很多使用VPS主机的小伙伴,都没有注意到VPS主机商有没有提供数据盘,比如购买的VPS主机包含系统盘30G,数据盘40G这样的事情基本没有注意到,等安装完程序网站运行起来后才发现只有30G容量,剩下的40G数据盘去哪里了呢?其实是因为没有挂载导致无法充分利用的原因。搬主题就是这样一个栗子,既然网站数据都存在,接下来不可能直接重装系统再挂载数据盘,那太麻烦了,有没有不改变原有网站数据就可以直接挂载数据盘的操作呢?当然是有的,这里搬主题就分享一下VPS挂载数据盘到home目录不改变原有WordPress网站数据最新操作设置图文教程。

这里搬主题的环境是Centos 7.4

一、查看VPS主机是否有数据盘

是否有数据盘的话,一般在购买VPS的时候,主机商都会和自己说的,或者明确写出来。但是很多主机商虽然写了,但是不会帮你主动挂载上去,需要自己挂载,因此没有注意到的话,就白白少了几十G的容量使用。

首先登陆SSH,然后用如下命令查询是否有数据盘可以挂载

fdisk -l

如果执行命令后,没有发现/dev/vdb,表示您的实例没有数据盘,无需格式化数据盘,请忽略本文后续内容。

二、查看系统盘和数据盘的速度

如果有1块数据盘的情况下,那意味着有2个硬盘,分别是系统盘及数据盘,那么我们可以先评估一下系统盘和数据盘的读取效率。当然本教程也适用于添加云储存硬盘。

这里搬主题用的是hdparm命令。

先安装hdparm工具

yum install hdparm –y

安装完成后通过 fdisk -l 命令查询挂载硬盘的名称。如下图

IMG_0

得到了相应的挂载硬盘的名称,接下来使用如下命令分别进行硬盘读取效率的评测

hdparm -t /dev/vda
hdparm -t /dev/vdb
VPS挂载数据盘到home目录不改变原有WordPress网站数据最新操作设置图文教程插图2

以上发现,数据盘的读取速度比系统盘要好,因此如果把WordPress网站数据挂载到数据盘上的话,还是可以获得网站速度的响应速度的提升的。

二、进行数据盘分区及格式化

如果发现的话,那就可进行数据盘分区和格式化操作,这里搬主题就引用了网上的一篇内容如下:

创建一个单分区数据盘,依次执行以下命令:

  • 运行 fdisk /dev/vdb:对数据盘进行分区
  • 输入 n 并按回车键:创建一个新分区。
  • 输入 p 并按回车键:选择主分区。因为创建的是一个单分区数据盘,所以只需要创建主分区。

说明 如果要创建4个以上的分区,您应该创建至少一个扩展分区,即选择 e。

  • 输入分区编号并按回车键。因为这里仅创建一个分区,可以输入 1。
  • 输入第一个可用的扇区编号:按回车键采用默认值 1。
  • 输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值。
  • 输入 wq 并按回车键,开始分区。

类似的操作如下

[root@iXXXXXXX ~]# fdisk /dev/vdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x5f46a8a2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-41610, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-41610, default 41610):
Using default value 41610
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

查看新的分区:运行命令 fdisk -l。如果出现以下信息,说明已经成功创建了新分区/dev/vdb1

[root@iXXXXXXX ~]# fdisk -l
Disk /dev/vda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00053156
Device Boot Start End Blocks Id System
/dev/vda1 * 1 5222 41942016 83 Linux
Disk /dev/vdb: 21.5 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5f46a8a2
Device Boot Start End Blocks Id System
/dev/vdb1 1 41610 20971408+ 83 Linux

在新分区上创建一个文件系统:运行命令 mkfs.ext4 /dev/vdb1

  • 本示例要创建一个 ext4文件系统。您也可以根据自己的需要,选择创建其他文件系统,例如,如果需要在LinuxWindowsMac系统之间共享文件,您可以使用 mkfs.vfat 创建 VFAT 文件系统。
  • 创建文件系统所需时间取决于数据盘大小。
mkfs.ext4 /dev/vdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242852 blocks
262142 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

(建议)备份 etc/fstab:运行命令 cp /etc/fstab /etc/fstab.bak

向 /etc/fstab 写入新分区信息:运行命令 echo /dev/vdb1 /home ext3 defaults 0 0 >> /etc/fstab

说明:Ubuntu 12.04 不支持barrier,所以对该系统正确的命令是:echo '/dev/vdb1 /home ext3 barrier=0 0 0' >> /etc/fstab。如果需要把数据盘单独挂载到某个文件夹,比如单独用来存放网页,请将以上命令 /home替换成所需的挂载点路径。

查看 /etc/fstab 中的新分区信息:运行命令 cat /etc/fstab

[root@iXXXXXXX ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Feb 23 07:28:22 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3d083579-f5d9-4df5-9347-8d27925805d4 / ext4 defaults 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/vdb1 /home ext4 defaults 0 0

三、进行挂载数据盘到home目录的操作

搬主题之前没有挂载数据盘,但是发现实际上数据盘已存在,且已完成分区,只是未进行挂载而已。如下图

IMG_0

接下来,搬主题对其进行数据盘格式化,注意,数据盘的路径为/dev/vdb1,不同的主机和硬盘可能硬盘名称有区别,自己用 fdisk -l 命令查看即可。

然后格式化命令如下

mkfs -t ext4 /dev/vdb1

回车后就可以进行格式化了,速度还是很快的。

VPS挂载数据盘到home目录不改变原有WordPress网站数据最新操作设置图文教程插图4

接下来就是重点操作了。因为目前数据盘还未进行挂载,而我们目前的网站目录及存放路径位于home文件夹下面,因此希望网站文件全部放在数据盘上,但是如果直接挂载数据盘到home目录,则会导致原有数据消失。

接下来的操作对于小白来说容易出现网站数据丢失的风险,建议先停止网站运行,然后进行数据备份再操作。

因为搬主题使用的是OpenLiteSpeed环境,因此需要先停止运行lsws环境,然后停止数据库,分别输入如下命令

systemctl stop lsws.service
systemctl stop mariadb.service
VPS挂载数据盘到home目录不改变原有WordPress网站数据最新操作设置图文教程插图5

网站停止后,接下来我们可以进行操作了。

其实不动原来的网站数据进行数据盘的挂载,思路很简单,这时候我们可以利用一个中转文件夹。

1、首先登陆到主机的根目录,输入cd / 后,然后使用 mkdir transfer 命令创建一个中转文件夹

2、然后输入命令 mount /dev/vdb1 /transfer 将数据盘挂载到transfer文件夹上

3、使用命令 df -h 命令查询是否有挂载成功,如果出现下图则为挂载成功。

4、然后将原有home文件夹内的所有文件复制到transfer文件夹里。使用如下命令

cp -R /home/* /transfer
IMG_0

复制好后,然后我们需要将原有home文件夹进行改名。因为很多人的教程是直接删除,但是搬主题建议先改名,这样比较保险。

mv home home1

以上我们将当前文件夹下的home文件夹重命名为home1,这里自行改为自己容易记的名字。另外文件夹重命名的方式很多种,包括FTP,还有比如BT宝塔都能在线改名。这里搬主题就不多说了。

改完名后,就可以进行再数据盘的挂载到home目录了。

mount /dev/sdb1 /home

如果挂载时出现mount: you must specify the filesystem type错误这是因为没有设置文件系统格式,可使用-t参数设置文件系统格式 mount -t ext4 /dev/sdb1 /home

使用 df -h 命令查看是否加载到home文件夹

IMG_0

注意:因为搬主题对数据盘进行了两次挂载,网上有的教程说会显示两个目录都被数据盘挂载,但是实际上搬主题只显示最后挂载的目录,也就是home目录,之前的transfer目录则自动为空了。

这个时候我们可以直接输入如下命令启动网站了。

systemctl restart lsws.service
systemctl restart mariadb.service

到这一步,理论上数据盘挂载操作就完成了。但是又出现了一个新的问题,服务都启动后,网站还是打不开,直接显示404找不到。

刚开始搬主题也是很郁闷不知道哪里出了问题,毕竟路径也完全一样,数据也都在对应的文件夹内,怎么会找不到呢?后来才发现其实是文件夹权限的问题。接下来需要设置WordPress文件夹权限。

四、WordPress文件夹权限设置

因为默认的home目录下的WordPress网站目录没有赋予权限,因为就会显示404,这个时候我们需要赋予其读写权限。很多小伙伴直接豪爽操作,文件夹权限777,立马恢复访问。如下

先登陆home文件夹下的网站根目录,获取当前绝对路径

pwd -P

比如获取了WordPress网站根目录的当前的路径为 /home/banzhuti.com/www ,则直接可以给其权限

chmod 777 /home/banzhuti.com/www

但是,如果直接赋予777或者755权限,实际上网站就可以访问了,且不说安全问题,后期可以再针对性的设置权限了。

如果这样操作的话,访问可以访问,但是会出现一些问题,而是就算赋予777权限,网站能直接访问,但是权限是属于root用户的,不属于网站普通用户,这样则无法上传图片等很多问题出现。需要进行文件夹的用户权限赋予。

先查看目前的PHP的所属用户

比如可以上传一张图片,然后到upload文件夹下查看对应用户是哪个

通过 ls -l 命令查询,查看类似如下

drwxrwxrwx 3 banzhu123 banzhu123 4096 Mar 24 02:08 uploads

其中banzhu123就是PHP所属用户。接下来需要赋予其相应的权限

chown -R banzhu123:banzhu123 /home/banzhuti.com/www

以上操作让对应的文件夹的权限操作所属用户全部归在banzhu123用户下。至此,网站应该可以正常访问,同时上传图片也将正常。挂载完成后,发现网站响应速度也快了一些,也算是WordPress优化加速的方法之一吧。

类别:WordPress 进阶教程

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册