这个站点建于约一个月前,当时其实WordPress 3.2正式版已经放出来了,不过我依然装上了3.1.4版本。一般来讲,最新版的软件刚发布,最好是先观望一阵,看看别人的试用和反馈情况。如果没有大问题,就可以考虑升级之。典型的例子?请参考微软的操作系统和Office系列产品。当然,这只是个相对稳妥的做法,如果你喜欢第一时间尝试最新版本,就当我没说过哈~
果不其然,WordPress 3.2正式版刚出来没几天,马上就来个新版本3.2.1,修复了一些比较严重的问题。3.2版本在网上好评如潮,新主题twenty eleven也很绚丽。对我而言,升级主要是出于安全角度的考虑,因为我读大学时有那么一阵很痴迷各种安全技术,杀毒软件,HIPS什么的,对网络安全很看重。WordPress这么受欢迎,所谓树大招风,不知有多少人整天盯着它找安全漏洞呢,及时升级到最新版总是有好处的。
废话了一大堆,回到正题。WordPress升级机制其实很成熟了,甚至可以直接在线升级。不过呢,完全自动化的东西有时候也会出问题。而且,自动升级比较适合的是那些不怎么修改WordPress源程序的用户。如果你改了源程序,那么最好就是手动升级了,备份好改动过的文件,以免被自动替换掉。
下面是详细的手动升级步骤:
1)备份
备份好数据库文件,以及其他必要文件(我的看法是最好整个WordPress程序也备份一次,要是升级失败的话恢复也比较快)。备份方法有很多种,一般都是使用插件来解决,如备份数据库一般用WordPress Database Backup(又名为WP-DB-Backup),它可以自动备份到你指定的邮箱中。很多空间商也会提供备份功能,除了常规的数据库备份,通常还支持整站的备份,这个也可以做一次,所谓不怕一万,就怕万一。
2)进入维护模式
自动升级的话,WordPress会自动进入维护模式,展示一个页面来提醒读者。手动升级的话就没这个功能,只能自己动手。
制作一个维护模式专用html文件,当你进行手动升级操作时,把站点导向这个页面。这样做的好处是,不会让不明真相的群众以为你的站点出啥问题了。
不会制作html文件?没问题,Google一下maintenance.html,随便下载一个回来,改一下文字描述就行了。
然后,把你的网站限制为只有你的当前IP才能访问,这样你就不会连自己也只能看到维护页面了。
假设你把你的maintenance.html放在网站根目录下,那么你可以把以下代码写进网站根目录下的.htaccess文件:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]
请查找自己本机的对外IP,然后把以上的123.123.123.123替换为自己的真实IP地址。
3)停用所有插件
WordPress官网推荐的升级操作步骤之一。有人说不停用插件直接自动升级也没问题,不过也有人反映不停用插件升级会出错。总结之,还是保险起见为好。
4)上传最新版WordPress程序到网站上备用
这个要说一下,因为一般来说如果解压后上传的话上传速度非常的慢(我指的是国外空间),所以建议先上传压缩文件,然后在线解压(一般空间商都支持后台在线解压的)。可以先在后台建一个文件夹来存放这个压缩文件,这样解压时不至于出乱。
5)更新文件
一般来讲,wp-admin , wp-include文件夹可以直接删除,用新版替换之。wp-content文件夹由于包含了主题和插件,要注意是否先备份好。例如,我对twenty ten主题做了很多修改,于是我先把旧的twenty ten主题文件夹改名了,然后再把3.2.1的wp-content文件夹直接覆盖到网站根目录,这样我的修改版主题就还保留着。网站根目录的其他文件也可以直接覆盖之,因为最重要的wp-config.php并不会被覆盖掉。
6)更新数据库
在浏览器地址栏输入 http://你的博客地址/wp-admin/upgrade.php,系统会提示需要升级数据库,点击确认即可,貌似升级挺快的。
7)收尾
后台启用插件,重新修改以前改动过的程序文件,检查一下有没有其他问题等等。确认没问题后,把.htaccess文件文件还原回维护模式之前的版本,让更新过的网站重见天日~
即便考虑到网速,以及操作熟悉程度等因素,整个手动升级WordPerss的过程也才花了我半个多钟,一切都很顺利。
如果修改了模板,只要把默认模板复制一份,重新命名一下就好了。各种功能也可以写入模板里的functions.php。只要不是wordpress自带的那两套模板,自动升级是不会被替换的哦
我改得挺多的,不只是主题和functions.php,所有改动的位置我都做了记录,并完整备份以一次,以防不测。