VPS挂载数据盘到home目录不改变原有WordPress网站数据最新操作设置图文教程
对于很多使用VPS主机的小伙伴,都没有注意到VPS主机商有没有提供数据盘,比如购买的VPS主机包含系统盘30G…
对于很多使用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
命令查询挂载硬盘的名称。如下图
得到了相应的挂载硬盘的名称,接下来使用如下命令分别进行硬盘读取效率的评测
hdparm -t /dev/vda hdparm -t /dev/vdb
以上发现,数据盘的读取速度比系统盘要好,因此如果把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
文件系统。您也可以根据自己的需要,选择创建其他文件系统,例如,如果需要在Linux
、Windows
和Mac
系统之间共享文件,您可以使用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目录的操作
搬主题之前没有挂载数据盘,但是发现实际上数据盘已存在,且已完成分区,只是未进行挂载而已。如下图
接下来,搬主题对其进行数据盘格式化,注意,数据盘的路径为/dev/vdb1
,不同的主机和硬盘可能硬盘名称有区别,自己用 fdisk -l
命令查看即可。
然后格式化命令如下
mkfs -t ext4 /dev/vdb1
回车后就可以进行格式化了,速度还是很快的。
接下来就是重点操作了。因为目前数据盘还未进行挂载,而我们目前的网站目录及存放路径位于home文件夹下面,因此希望网站文件全部放在数据盘上,但是如果直接挂载数据盘到home目录,则会导致原有数据消失。
接下来的操作对于小白来说容易出现网站数据丢失的风险,建议先停止网站运行,然后进行数据备份再操作。
因为搬主题使用的是OpenLiteSpeed环境,因此需要先停止运行lsws环境,然后停止数据库,分别输入如下命令
systemctl stop lsws.service
systemctl stop mariadb.service
网站停止后,接下来我们可以进行操作了。
其实不动原来的网站数据进行数据盘的挂载,思路很简单,这时候我们可以利用一个中转文件夹。
1、首先登陆到主机的根目录,输入cd /
后,然后使用 mkdir transfer
命令创建一个中转文件夹
2、然后输入命令 mount /dev/vdb1 /transfer
将数据盘挂载到transfer文件夹上
3、使用命令 df -h 命令查询是否有挂载成功,如果出现下图则为挂载成功。
4、然后将原有home文件夹内的所有文件复制到transfer文件夹里。使用如下命令
cp -R /home/* /transfer
复制好后,然后我们需要将原有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文件夹
注意:因为搬主题对数据盘进行了两次挂载,网上有的教程说会显示两个目录都被数据盘挂载,但是实际上搬主题只显示最后挂载的目录,也就是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优化加速的方法之一吧。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!