-
获取oss相关配置
Bucket:name
Accesskey:key
Secret:secret
内部域名:name.oss-cn-shanghai-internal.aliyuncs.com
内部域名不含bucket:oss-cn-shanghai-internal.aliyuncs.com
外部域名:name.oss-cn-shanghai.aliyuncs.com
外部域名不含bucket:oss-cn-shanghai.aliyuncs.com
-
验证配置是否正确
在本机通过客户端登录是否正常,以检查bucket,appid,secret是否正确
在服务器ping内部域名和外部域名,以检查服务器与oss是通信是否正常。
-
设置DNS的CNAME记录,配置一个二级域名指向OSS的外部域名
static.xxxx.com => name.oss-cn-shanghai.aliyuncs.com
通过OSS客户端上传一个图片文件,如test.jpg,通过static.xxxx.com/test.jpg访问,以检查指向是否正确。
-
明确wordpress的上传目录
未修改前,上传目录默认为:…../wordpress/wp-content/uploads/
访问上传文件的路径默认为:www.域名.com/wordpress/wp-content/uploads
停止应用,备份上传文件目录,直接修改uploads文件夹名称为uploadsbak即可
-
将OSS存储目录挂载到wordpress上传目录中
-
下载预编译的安装包:
https://github.com/aliyun/ossfs/releases
这个页面只提供了64位版本的安装包,如果没有适用于你的服务版本,需要自己编译,具体参考其帮助文档,上面提供了编译及安装文档。
-
安装ossfs工具
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi 下载的deb安装包路径 -
把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。
- echo name:key:secret > /etc/passwd-ossfs (注:name,key,secret替换为前面明确的内容)
- chmod 640 /etc/passwd-ossfs
- echo name:key:secret > /etc/passwd-ossfs (注:name,key,secret替换为前面明确的内容)
-
挂载oss到wordpress的上传目录
ossfs bucketname 图片上传的目录 -ourl=如果内网域名可用就写内网域名,不包含bucketname -o allow_other
如果你已经将文件转移到oss中,需要重新为上传目录的子目录分配权限,chmod 777 xxxx/uploads/*即可
-
将原有静态文件上传到oss中
通过copy命令将前面备份目录中的所有文件复制到新挂载的目录中即可,过程需要一定时间,视你原有文件大小而定。
-
-
修改媒体库访问图片的链接地址
-
新版本的wordpress去除了上传路径的自定义及访问url的设置
解决方法如下:
在functions.php中添加以下代码
//找回上传设置 if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) { update_option('upload_path',WP_CONTENT_DIR.'/uploads'); }
-
需要修改为前面配置好的
- 默认空的情况下,访问图片的路径类似为:www.xxxx.com/wordpress/wp-content/uploads/xxx.jpg
- 修改之后访问图片的路径为:static.xxxx.com/xxx.jpg
-
修改数据库中所有的www.xxxx.com/wordpress/wp-content/uploads/为static.xxxx.com/
- 可行的方式之一为:导出数据为sql文件,通过文本搜索替换的方式进行替换
-
-
不使用OSS后,如何还原?
-
Umount 挂载的目录
- 复制挂机目录的所有文件到本地计算机中如:uploadsbk
-
将OSS的文件还原到本地中
- 将uploadsbk目录重使命名为uploads
-
重新设置图片的访问路径
- Static.xxxx.com替换为www.xxxx.com/wordpress/wp-content/uploads/
-
-
问题
-
服务器上传目录没有保存上传的文件,只存在于OSS中
- 改进的方法之一:上传目录仍然为本地目录,OSS挂载的目录为另外一个目录,通过文件夹同步操作,保持两个目录的统一(这样将上传到本地和上传到OSS的操作由同步变为了异步,提高了上传时的速度;另外访问OSS时,这个文件可能由于文件过大,上传到OSS未完成,此时访问会失败)
-
Linux环境下,WordPress无插件配置OSS完整
