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' ));
暂无评论