• HOME
  • DOCS
  • WTF
  • TECH
  • LIFE
  • PAGES
    • ARCHIVE
    • TAGS
    • ABOUT
    • FRIENDS
    • RSS
  • TOOLS
    • GEO
    • RANDOM()
    • GOO.GL
    • CSS HEART
Aj's Blog

记录时间溜走的瞬间和折腾过的那些事

wordpress扩容小记

2016-10-16  TECH  abs path  e2fsck  out side  resize2fs  uploads  wordpress  

*** wordpress 默认限制所有目录必须在 wordpress 网站根目录范围内 ***

但是很多图片站uploads目录文件太多太大时需要挂载扩展盘单独来单独存放

就会面临2个问题

1、扩展磁盘的挂载与映射、后续的扩容

2、wordpress配置,使用外部绝对路径,同时还要兼容新老图片 /wp-content/uploads/ 路径

本例为linux系统

一、新磁盘的挂载和扩容

新加了磁盘后在 fdisk -l 里可看到大小

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
...blablabla...
Device     Boot Start       End   Sectors Size Id Type
/dev/vda1  *     2048 104857599 104855552  50G 83 Linux   # <-- 旧盘 50G,一个分区


Disk /dev/vdb: 50 GiB, 53687091200 bytes, 104857600 sectors
...blablabla...
Device     Boot Start       End   Sectors Size Id Type    # <-- 新盘 50G, 没有分区 

如果是新盘首先格式化磁盘 fdisk /dev/vdb,按向导创建一个分区
默认的分区大小只能20G,要使用完整的50G,只需要如下命令即可


e2fsck -f /dev/vdb
resize2fs /dev/vdb

以后升级就不需要删除和重新创建分区了,直接执行上述命令修改大小即可

格式化后再 fdisk -l 检查一下硬盘大小,挂载硬盘 mount /dev/vdb /newdisk,然后 df -lh 检查一下结果

二、wordpress 使用外部磁盘的绝对路径
uploads的目录修改牵扯到 老图片的调用地址 和 以后新上传图片的调用地址

首先我们把旧的目录 mv 到新盘上:mv /wordpress-OLD/wp-content/uploads /newdisk/uploads

然后建立一个连接 ln -s /newdisk/uploads /wordpress-OLD/wp-content/uploads

按理说是已经OK了,但上传新图片时却提示目录无写权限,即使777依然报错,我偷懒就没有去读代码debug

在wp-config.php添加 define( 'UPLOADS', '/newdisk/uploads' ); 也不行

文章开头就说了因为wordpress限制了图片路径必须在网站跟目录内

这个看似绝对路径的配置实际上会被WP处理为在网站根目录下新建目录 newdisk/uploads

网上查了下资料,是在模版中 functions.php 中追加如下代码

相当于在代码层面hook图片上传路径和读取时的URL而不用写入配置


//上传时:使用绝对路径 /newdisk/uploads
update_option('upload_path', untrailingslashit(str_replace( '/wordpress-OLD/', '/newdisk/uploads', ABSPATH )));

//读取时:使用上面的软连接路径(实际还是指向/newdisk/uploads)
update_option('upload_url_path', home_url( 'wp-content/uploads' ));
下一篇:   xen server中win2003 vm挂起的处理方法
上一篇:   深入思考 – 流量红利
暂无评论

Cancel reply