在WP的后台安装插件时有时候会碰上An Unexpected HTTP Error occurred during the API request. 这个问题只是连接Wordpress服务器超时,可以通过修改timeout来避免。 在wordpress 3版本中,这个参数在wp-includes/class-http.php中,以前版本可能在wp-includes/http.php中。打开文件寻找 ‘timeout’ => apply_filters( ‘http_request_timeout’, 5), 其中5就是超时5秒的意思。将这个数值改大即可,我改了30,这样如果网络OK,那么也不会有副作用,会很快打开,如果网络不那么好,最长会等30秒来等待插件页面打开。 其实我以前也没有发现这个问题,最近才一直打不开。我开始也怎么在意,自己下载了然后上传的方式来安装插件的。后来搜索了一下这个问题,才知道与超时有关系。 不知道是不是和最近wordpress服务器遭到入侵的事情有关系。
Tag: wordpress
Nginx 支持 wordpress的rewrite
最近迁移blog到VPS, Web服务器用的是Nginx。与之前的apache不太一样。迁移过来后主页可以打开,但是链接都进不去,因为用的不是p?id=xxx的形式。所以需要rewrite功能。但是nginx上面这点需要自己配置。 在网上搜索了一下。找到这篇文章: Nginx支持WordPress3.0.1的永久链接(Permalink) Nginx没有Apache特有的mod_rewrite,因此不能由WordPress自动配置。 在nginx配置文件中加入如下行即可: location /wordpress/ { … rewrite ^index\.php$ – last; if ( !-e $request_filename ) { rewrite . /wordpress/index.php last; } … }
升级本站wp版本到3.0
今天wp官方的3.0正式版发布了。进入admin界面也就出现了要我upgrade的提示,很人性化,至少比那个mediawiki程序要好很多。一点就自动升级好了。mediawiki小版本的更新如果有ssh还有,要是没有,这个过程还是比较烦的,尤其是一段时间后对于过程不是那么印象深的时候。 3.0后原本的主题和插件都没有什么大的问题,不错。
网易博客转移完毕
在转移的过程中先前将问题想得太简单了。直接将blog_backup读取到的内容写进了xml文件,其实内容中是有很多html的标签的。所以需要做转义,略微修改一下程序,将& < > ; 替换成了& < > " 。其中这个问题也是在w3c的rss validator页面的帮助下完成的。一直修改到将导出的xml文件在 http://validator.w3.org/feed/#validate_by_input 验证无误(当然还有一些warning),最后提交wordpress后台导入也就成功了。这个过程中因为我使用的是未注册的blog_backup,所以自己做了导出xml部分的工作。如果注册了blog_backup,软件自身有导出的功能,但是在网上也看见有网友说导出的文件不能直接导入wordpress。同时这段时间也在网上看见有另外的2个办法: 通过blogbus的搬家功能(今天访问时竟然说搬家功能暂时不可用,我晕)导出xml,然后再利用ant21的一个python脚本来转换成wordpress的文件。但是我没有找到ant21的那个python文件,而ant21的博客网站也已经无法访问了。最后在http://code.google.com/p/bus2wp/找到,不过没有尝试。有兴趣的朋友可以多一条路。 另外还有一种方法是古冰的:http://bingu.net/308/update-blogbus-to-wordpress/ ,不过也需要blogbus的功能作为前提。我看这个搬家功能总有一天会不让我们下载到xml文件的(事实上很多博客为了拉来用户都有博客搬家的功能,但是都不会给用户下载导出的xml文件等)。 所以我在这里也推荐一下blog_backup这个工具, 虽然我没有买,但是感谢作者。http://www.pt42.cn/blog_backup_index.htm
琢磨了两天,初步有了搬家的方案了
目前初步的实验了一下,从网易导出数据使用的是blog_backup这个工具,这个工具目前是收费软件。作者的免费功能只能到抓取博客中的所有文章到其sqlite数据库(我个人感觉这个工作内容比较复杂,而后面需要注册的导出功能实际是比较简单的),幸好作者没有对这个数据库进行加密,可以直接用sqlite工具读取,这个工具本身也可以导出成多种格式的文件。但是这些都需要注册了。本来想试图破解一下,但是功力不够也嫌烦,想想sqlite文件都有了自己读取了生成rss2.0的xml也容易。用ruby + sqlite3-ruby这个gem写了几行代码就做到了。原来一共有216篇文章,生成一个rss文件后使用wordpress后台的导入功能时遇到了几个问题。 导入到某篇文章时会终止 导入的文章内容被截断,尤其是有“{”的文章,有些文章中包含源码,很多“{”符号 有些文章导入后导致主页排版有问题。 所以初步试验了一下后我又将导入的文章全部先删除了。这其中的问题就是网易生成文章的时候嵌入了太多的html元素。另外很多文章也是我以前复制粘贴上来的,也就意味着复制粘贴了当时引用页面的所有源代码,肯定格式会很乱。如果要继续搬家工程,就要对这些东西进行精简优化。看来各种问题还真的不少。同时也体现出来自己对HTML学习的不好。