照我看来,升级wp主程序无非就是在文件系统上做手脚,备份数据库是多余的,所以就写了脚本一枚,方便己用。如果你有兴趣,也可以参考了去。
创建脚本如下,并设置权限为700。
脚本:auto-upgrade-wp.sh
#!/bin/sh
if [ -d blog ] && [ -d wordpress ]
then
# Do the dirty work.
echo "Updating..."
echo ""
cp ./blog/wp-config.php ./wordpress/
chmod a+x ./wordpress/wp-config.php
cp -R ./blog/wp-content/themes/* ./wordpress/wp-content/themes/
cp -R ./blog/wp-content/plugins/* ./wordpress/wp-content/plugins/
# Delete old backup folder if exist.
if [ -e blog-old ]
then
chmod 777 blog-old
rm -rf blog-old
sleep 2
fi
# Do move job.
mv blog blog-old
mv wordpress blog
chmod 600 blog-old
echo "Done!"
echo ""
echo "You may now visit http://your.blog/wp-admin/upgrade.php "
echo " to update database structure."
echo "Enjoy!"
else
# If some preparation not done
echo "Cannot find blog and wordpress folder."
echo " - Are you in the correct directory?"
echo " - Have you unpacked the wordpress tarball?"
exit 1
fi
具体的含义我就不一一解释了。
主要的步骤是:
- 首先判断目录下有没有已经安装的wp:我这里是blog目录中。
- 然后是判断有没有wordpress目录,也就是新版的wordpress。
- 满足条件,开始升级,不满足则退出。
- 把wp-config.php,主题,插件拷到新目录中。
升级完毕。
使用方法:
- ssh到主机,cd到网站根目录,如htdocs,www等。
- wget最新的wp安装包,并解压。
- 运行./auto-upgrade-wp.sh。如果没法执行,赋予执行权限。
- 到用浏览器访问http://你的博客URL/wp-admin/upgrade.php
嗯,就这些。如果升级出问题,可以删除blog目录,把blog-old重命名为blog,设权限为755,执行上面使用方法中的最后一步,还原数据库,这样就又恢复到原来的状态了。
当然,你也可以写一个脚本——如果这也算是脚本的话。。。。:
#!/bin/sh
rm -rf blog
mv blog-old blog
chmod 755 blog
注意:本人不保证上文中所述的方法100%安全可靠。如果你不理解上面的脚本究竟做了些什么,请不要使用,或自己承担任何风险。谢谢!
updated:
上面的脚本有一个问题,就是在删除blog-old的时候会提示权限不足。解决方法是在删除前先chmod一下。我已经修复了脚本。
呃,后来我都用后台的自动升级了~
回复删除直接后台点自动升级,然后去喝杯水,回来就升级完毕了,懒得备份,从没出过事...
回复删除更懒的话就svn co一个,crontab三五天自动跑一次svn up....