Linux环境下,WordPress无插件配置OSS完整

  • 获取oss相关配置

    Bucketname

    Accesskeykey

    Secretsecret

    内部域名:name.oss-cn-shanghai-internal.aliyuncs.com

    内部域名不含bucketoss-cn-shanghai-internal.aliyuncs.com

    外部域名:name.oss-cn-shanghai.aliyuncs.com

    外部域名不含bucketoss-cn-shanghai.aliyuncs.com

  • 验证配置是否正确

    在本机通过客户端登录是否正常,以检查bucket,appid,secret是否正确

    在服务器ping内部域名和外部域名,以检查服务器与oss是通信是否正常。

  • 设置DNSCNAME记录,配置一个二级域名指向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 nameaccess key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640
      • echo name:key:secret > /etc/passwd-ossfs (注:name,key,secret替换为前面明确的内容)
      • chmod 640 /etc/passwd-ossfs
    • 挂载osswordpress的上传目录

      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未完成,此时访问会失败)

     



打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.