成功将博客所有附件转移到远程服务器~~

PS:现在我博客的图片就是在远程服务器上的.


我的附件(基本上全部是图片)共300多MB,要通过FTP传到国外服务器在国内确实不容易,这个问题也是蓝冰帮助搞定的。直接被他wget秒杀了,然后mv一下,因此,此次转移附件没花多少时间。修改域名A记录也是几秒钟就生效。下载备份文件到本地也相当的快。不得不说,衡天主机的速度和稳定性还是非常给力的,我用他们的主机也有近两年了,一直非常稳定。
下载博客备份数据中:


昨天把插件发布出来了,没有怎么介绍使用,今天结合我博客的实例正好说一下这个事情,供大家参考。

安装Hacklog Remote Attachment插件。
首先,不用我说啦,备份网站的数据(文件+数据库).
然后,把wp-content/uploads目录及入下面的所有文件全部传到远程FTP服务器上去。

然后,到wp后台”Hacklog远程附件” 配置插件,要填写的内容包括:
ftp用户名、密码、端口、远程base URL、远程路径(即子目录)
这里解释下远程base URL,这个URL即访问你的FTP根目录的URL (http协议的),如 http://static.ihacklog.com/
然后是路径了,也就是你要远程FTP服务器的哪个目录下面放置wordpress的附件,这个目录其实是相当于wordpress的wp-content目录下面的uploads目录了,只是这里的目录名你可以随便取,我这里用的是wp-files
如图:

好了,现在你可以删除原来uploads目录下面的所有文件了,给一张我删除时的图吧(其实可以到cpanel直接一键给X的了啦,这里我为了要截图,用FTP删):

最后,更新数据库。由于现在博客日志中的图片和附件链接都是指向原来的URL的,因此,得更新一下。这个可以用Hacklog Remote Attachment后台的Tools搞定,也可以自己进phpmyadmin,然后执行:

1
2
UPDATE  `wp_posts` set post_content=replace(post_content,'ihacklog.com/wordpress/wp-content/uploads/','static.ihacklog.com/wp-files/');
UPDATE  `wp_posts` set post_content=replace(post_content,'www.ihacklog.com/wordpress/wp-content/uploads/','static.ihacklog.com/wp-files/');

注意,这里wp_posts是日志表名,如果你更新了前缀,请用自己的表名。www.ihacklog.com/wordpress/wp-content/uploads/ 是原来的URL中的一部分,static.ihacklog.com/wp-files/ 是新的URL,这些理解起来应该都很容易,不过在做这个操作前最好确保你已经做了第一步:备份。

OK,现在完工了。你可以在后台像平常一样上传附件、图片什么的,删除也一样。唯一不同的是你的附件是保存在了远程服务器上了。
以前你怎么上传图片,现在还是怎么上传:


注意事项:

1.远程ftp的上传目录需要有“写”权限
2.本地服务器的wp-content/uploads目录请勿删除,此目录在生成图片的缩略图时要用到,生成的残留文件不必手动删除,插件自会在一小时后删除之。
3.wp后台的“媒体”选项中的上传目录选项请保持和你原来一样,不要在迁移后随便修改这些。总之,这个选项按你原来博客是哪样,现在还是哪样,这样就行了。
4.FTP空间最好与你的本地服务器在同一地域,这样上传起来速度更快。

更多
44 Responses Post a comment
  1. ScotGU

    非常感谢,使用你的这个神器,解决了困扰我很久的问题。

  2. hoythan

    如果已经安装了Hacklog-DownloadManager...现在需要用这个插件,我该怎么办呢?

  3. 荒野无灯

    建议你在本地架设WP空间测试一下此插件看能不能正常删除?
    (测试用的ftp服务器建议用filezilla server,简单易用)

  4. joynic

    站长您好^_^冒昧打扰你,之前在你博客留言反馈安装错误的问题,感谢你的及时更新新版本(1.2.8),已经成功使用了。

    测试中发现一个问题:后台删除图片之后,远程服务器上仍然会保留原始尺寸的那张图片,所有尺寸的缩略图都可以正常删除。请问是我没有设置好吗?

    best^_^

  5. 荒野无灯

    @邮莓
    过去一看原来是小邪的博客~~ 那的实现方式与我这个不同。他那个插件需要远程服务器有httpd + php 的支持,我这个不需要php,如果只是上传附件的话,我这个插件也可以不要http服务器的支持,仅ftp服务器就可以用。

  6. 邮莓

    @荒野无灯
    以前见过一个插件就是远程来下载的,不过快两年没更新了,还停留在不可视编辑的方式,http://www.rainmoe.com/2010/03/22/wp-remote-uploader-v2-plugin/
    你看能不能修改更新一下,踪合到你插件,使它更强大! :twisted:

  7. 荒野无灯

    @邮莓
    呃。。。要让远程ftp服务器自动下载你博客的东西,这个还真困难。。。目前我想有可能实现的途径也就是通过fxp了,不过,一个连ftp外连都不支持的主机,它会支持fxp吗?

  8. 邮莓

    大神,这几天再次来逛你博客,更新了很多内容了,看了很久!知道此插件是先默认服务器再上传到远程服务,后删默认的!能不能逆向思路呢?让远程服务器来下载默认FTP的资料再删除呢?这样可以解决默认服务器限制访问远程FTP而无法使用如此实用的插件!同时也解决一些没有远程FTP账号功能的web空间的童鞋!希望考虑一下!

  9. Dreamcolor

    上一条评论不小心给发布了。我是想说,用那个插件上传附件的时候,是可以把除了系统默认的四种图片以外的附加尺寸都可以进行上传的。是否有时间帮忙看看呢?

  10. Dreamcolor

    有个类似的插件也是上传附件到远程 FTP 服务器,只是后台没有您开发的这款功能强大。插件作者地址是:http://wwpteach.com/upload-to-ftp

  11. Dreamcolor

    出问题的原因大概找到了。貌似是因为我用的 WordPress 的默认主题 Twenty Eleven 的问题。在使用这个主题的时候,会在每次上传图片的时候,除了系统定义的三种尺寸的缩略图外,还会增加两种尺寸的图片。大小分别为 500x300 和 1000x288 两种尺寸。
    出问题貌似是在传输这两种图片的时候出现的。估计是您没使用默认主题,可能也就不容易发现吧。

    定义这两种尺寸的代码是写在了 Twenty Eleven 的 functions.php 文件里面了。

    不知道博主能否看看。

  12. Dreamcolor

    虽然上传是成功了,但是出现如下的错误信息。我是在后台“Media”页面中直接上传图片的时候出现的。WordPress 版本为 3.3

    Warning: file_get_contents(×××××/public_html/wp-content/uploads/2011/12/198841_d28c1b2c892a809a29bdd361a4312065_1323243731-276x288.jpg) [function.file-get-contents]: failed to open stream: No such file or directory in ×××××/public_html/wp-content/plugins/hacklog-remote-attachment/includes/hacklogra.class.php on line 571

    Warning: unlink(×××××/public_html/wp-content/uploads/2011/12/198841_d28c1b2c892a809a29bdd361a4312065_1323243731-276x288.jpg) [function.unlink]: No such file or directory in ×××××/public_html/wp-content/plugins/hacklog-remote-attachment/includes/hacklogra.class.php on line 580

  13. Topaz

    @Topaz
    这个问题解决了呵呵在狗爹地后台的FTP File Manager把文件的属性改一下就可以了

  14. Topaz

    哎 终于可以了 但是又出现这种问题 说没有访问权限- - FTP访问没问题
    -------------------Error info-------------------

    Forbidden
    You don't have permission to access /wp-content/2011/11/111127190438.png on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

  15. 阿疯

    图片,我更习惯用网盘。
    用google的图片空间还不错。

  16. 起衣

    啊,无灯太帅叻...可是,不想写文章的孩子能拯救不?

  17. 荒野无灯

    @Topaz
    注意 ,这个子目录是指当前ftp账号的根目录下面的目录,通俗点说,不管你是怎么绑定的,就是你用这个ftp账号登录后要能看到这个目录名字~~

  18. Topaz

    @Topaz
    另外我是绑定的子FTP账户 指向的是根下面的/topazplugins目录

  19. Topaz

    @荒野无灯
    不好意思 这几天在网吧
    远程URL是:http://plugins.topzs.com/
    远程本地路径是:/wp-content/plugins
    本地路径的目录是我自己建立的 谢谢

  20. 荒野无灯

    @Topaz
    插件设置那里,Remote path(远程路径)填写的是什么?这个目录要填写正确.

  21. Topaz

    对了还有就是 我目录权限设置了 设置的775 和777都试过还是不行

  22. Topaz

    :arrow: 蓝冰胸介绍我用这个插件的 确实很让人兴奋,但是有问题哦 哥们给技术支持一下呗。
    ------------------------错误提示-----------------------------
    发生了一个错误,上传“bg_01.jpg”失败
    Hacklog Remote Attachment:在远程服务器创建目录失败!
    --------------------------------------------------------------
    用的godaddy的10G免费空间。

  23. liveme

    我很喜欢这个插件!!以前找了很久,也实现不了这个功能。期待你继续完善 :roll:

  24. 荒野无灯

    @小七
    对大家有用就好 :lol: ,做这个插件的原因是,在wp官网没有找到一个有些功能的插件,只好自己动手,丰衣足食了 .
    花了一天时间研究wp的源码,最终做出这么个插件来实现了博客与附件分家~~

  25. 小七

    你终于把困扰我好久的一个问题给解决了,万分感谢!

  26. 荒野无灯

    @柠檬
    应该是你的dns服务器没有更新记录。图片显示什么的是没有任何问题的。

  27. vaman

    ,,,博客会有那么多附件么@@

  28. phoetry

    衡天+1 , 还不错的.
    有空间真好=.=

  29. 久酷

    时间久了,图片确实成了一大问题……

  30. 艳文

    :twisted: :twisted: 邪恶了。。。嘿嘿嘿。。

  31. 恋上苹果

    :twisted: 这个插件好好,虽然WLW配合FTP也可实现远程调用图片,但是更习惯WP后台,这个插件直接解决了在WP后台上传附件到远程FTP的问题,哇咔咔。大师就是大师,你的下载管理插件,+这个插件,好爱爱哦~ :roll:
    MARK一下,回头鼓捣一下,正好启用图床。

  32. 蓝冰

    我表示没压力,不需要远程,哇咔咔。

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS