WordPress

CentOS利用cloudfs使WordPress附件存储在OSS中

猴猴 ·

注:本文更新于2018年1月27日。

这两天在想能否把博客的附件图片等全部放在OSS上,这样就免去了数据盘的一笔费用,又能方便的进行后期迁移或者重装系统等。而且希望ECS通过内网访问OSS文件,而OSS文件通过ECS来实现公网访问。虽然有点脱裤子放屁的意思,不过应该也会有这种需求的用户吧。而OSS的使用门槛貌似还是有点高的,好在发现了cloudfs这个东西。cloudfs是云文件系统(Cloud File System),是云语科技推出的云存储文件系统,它将OSS存储模拟成ECS的一个本地盘,安装cloudfs后,用户可以像操作本地磁盘一样操作OSS存储。这样的话就很容易实现前面的目的了。下面就分享一下过程。

1、安装cloudfs依赖库:

CentOS 6.5 6.8:

yum install libcurl libcurl-devel openssl-devel fuse fuse-libs fuse-devel libxml2-devel git gcc g++ make

2、cloudfs 代码下载编译

git clone https://git.oschina.net/weiweibaba2007/cloudfs.git
cd cloudfs/cloudfs_src/
make pack

上述命令成功执行后,在当前目录会生成一个pack目录和cloudfs_linux版本.tar.gz,其中pack目录包含了安装需要的文件,
cloudfs_linux版本.tar.gz是pack目录压缩打包后的文件;

3、执行一键式安装脚本(针对CentOS 6.5 6.8)

cd pack/
./CloudFS_Install.sh INSTALL_DIR=安装目录 MOUNT_POINT=挂载目录

注:INSTALLDIR是CloudFS的安装路径,如果不带该参数,默认安装在/usr/local/cloudfs目录下。MOUNT_POINT是CloudFS运行时的挂载目录,如果不带该参数,默安挂载在 /mnt/oss。

4、修改配置文件参数:

配置文件的路径取决于在执行一键式安装脚本时指定的INSTALLDIR路径,如在一键式安装时指定INSTALLDIR=/usr/local/cloudfsdownload,那么conf的路径就在/usr/local/cloudfsdownload/conf下。默认安装时,配置文件的路径为:/usr/local/cloudfs/conf。假设是默认安装的,则通过vi修改配置文件,命令如下:

vi /usr/local/cloudfs/conf/cloudfs.conf

配置的主要有四个属性(必选):

HOST:访问OSS使用的URL。这里要注意下选内网的链接。

ID:OSS的access id,在阿里云官方网站上获取。

KEY:OSS的access key,在阿里云官方网站上获取。

BUCKET:需要挂在到ECS上的OSS Bucket名字。

5、启动/停止CloudFS

5.1 启动CloudFS,执行命令:

service cloudfs start

5.2 停止CloudFS,执行命令:

service cloudfs stop

5.3 查看cloudfs运行状态,执行命令:

service cloudfs status

注:此时可能会出现启动失败的问题,会提示找不到库文件libunwind.so.8。下载安装个就可以了。很好解决。

6、此时已经配置好了cloudfs,在(默认)挂载路径/mnt/oss中上传文件的话,在阿里云OSS控制台中就能看到上传的文件了。

7、WordPress后台设置–多媒体中更改多媒体上传路径为挂载路径/mnt/oss。此时通过WordPress上传文件就可以上传到OSS系统中了。但是此时上传的文件还是无法访问的,路径不对。因为WordPress无法访问挂载的目录。

8、使用Linux系统的命令ln解决访问路径问题。

ln -s 你的oss挂载的目录 你的wp上传的默认目录

9、大功告成!快去检验一下效果吧!
注:如果想直接走OSS外网访问的话,设置会更简单些。不过OSS的公网流量是很贵的,不如结合CDN来加速OSS,这样可以节约大约一半的银子,何乐而不为呢?

0 条回应