Archive for 四月, 2008
如何自动备份虚拟主机上的数据库
虚拟主机(hosting)的日常维护中非常重要的一项就是备份数据库了。一旦你的网站发布以后,你的系统就有可能面对各种各样的攻击和不确定性。所以经常的定期备份显得尤为重要。我之前的一个域名下的blog就是因为自己的管理不善,没有进行及时有效的备份而使得数据全部丢失了。所以自从购买的新的Domain和虚拟主机以后,首先就对数据库的备份做一些必要的设置,总结如下,仅供借鉴和参考。 备份的方法有很多,各有利弊: 1. 一般的虚拟主机提供商都提供在线手动备份数据库的功能。可以下载数据库文件到本地或者存储在虚拟主机上。现在比较流行的CPanel都默认提供这种功能。 2. 系统自身的备份功能。比如wordpress的DB backup插件。它可以自动的定时进行数据库备份。特点就是简单易用,具有图形界面。只需要安装相应的插件,简单设置一下就行了。缺点就是只限于特定应用,并不是通用的方法。但鉴于很多人都是为了写Blog而购买虚拟主机,并且WordPress又是最流行的Blog系统。所以这也不失为一个简便方法。 3. 通过自己编写Shell脚本和Linux系统的Cron命令来进行备份。这个方法虽然稍微麻烦一些,但却是一个通用办法。与使用的应用程序无关。可制定性强。这个也是我今天要重点介绍的方法。 使用Shell脚本进行备份需要几个条件,首先需要你购买的虚拟主机支持SSH,即可以远程登录服务器并使用Shell,另外你的服务器还必须允许你使用Cron命令,这样就可能进行定期和自动备份。其次,这个方法只适用于Linux或Unix服务器。最后,就是需要懂得一点儿数据库和Shell的知识。 1. 需要是你的虚拟主机支持SSH,这个根据主机的不同而不同。具体方法可以和你自己的主机提供商联系。我这里以Bluehost为例,默认情况下,bluehost并不能使用SSH。你需要联系他们的客服。他们一般会要你提供你身份证明。确认开通以后,可以使用你喜欢的SSH工具连接你的服务器。Unix/Linux默认就有SSH,Windows必须安装相应程序(这就是我为什么讨厌Windows),我推荐Cygwin,它可以完全模拟Unix的环境。然后,输入下面的命令: ssh (你的用户名)@(你的域名或IP) 比如: ssh bush@abc.com 然后,输入密码,就可登录你的主机了。 2. 编写数据库备份Shell。我这里以Mysql和Bash为例,编写了一个简单的示例Shell,只需要稍作修改就可以用到你自己的主机上了。其实这里只用到了一个mysql程序,即mysqldump,命令的讲解请点击这里。 首先,创建备份目录。 $mkdir ~/backup/database 然后,把下面的代码写进一个Shell文件,比如~/backup/database/myDB-backup.sh #!/bin/bash USERNAME=your home folder BACKUP_DIR=/home/$USERNAME/backup/database PASSWORD=your password DATE_STRING=$(date +%Y)$(date +%m)$(date +%d) FILE_NAME=$DATE_STRING.sql.bz2 mysqldump –add-drop-table –all-databases -u $USERNAME -p$PASSWORD | bzip2 -c > $BACKUP_DIR/$FILE_NAME 最后,要使刚才写的Shell可执行,运行下面的命令: $chmod 755 ~/backup/database/myDB-backup.sh 3. 创建Cron。这个步骤与具体服务商的设置有关。如果使用Cpanel的话大体相同。具体请查看你自己虚拟主机的帮助。一般的在CPanel里,你就可以指定刚才创建的Shell(Command to run),然后指定Shell定期运行的时间,比如每天午夜12点。 [...]
如何在CSS里设置文本的尺寸
但从标题上来说,也许会有人认为这太简单。但是,这个简单与不简单是有条件的,如果你开发的Web应用程序只给固定的一些少数人用,而这些人又碰巧只使用一种浏览器,那么设置网页的文本尺寸就是个简单问题。但是如果你开发的项目要给成千上万人使用,你不知道他们使用什么浏览器,不知道他们用的是什么系统,而你又非常关心你的网站的用户体验,那么这就是复杂的问题。 网页的设计标准是统一的,但是由于现实中存在IE,Firefox,Opera,Safari等等许多浏览器,而且他们对同一标准支持又不尽相同。所以制作页面的时候,就不得不考虑它们。其中IE6对标准的支持是最差的,在制作网页的时候经常要对IE6做特殊照顾。在CSS里设置文本的时候也不例外。 固定的字体大小和高度固然是良好设计的前提,但是网页又有其特殊性,用户和设计一样,可以随意更改页面的样式。比如,你的网页显示给视力不好的人看的时候,他们就可以通过浏览器改变你原来设置的字体大小来使文字看起来更舒服。所以制作的网页的时候也需要考虑这个。 以我个人做过的项目来看,很多网站都使用PX来设置文本大小,这个对于IE以外的浏览器来说没有问题,你设置的字体都可被放大和缩小。但是在IE却不行。所以,不需找到一个更通用的方法来设置字体大小。 W3C的标准推荐使用em。什么是em呢。在最开始,它表示英文字母的水平长度。但是后来由于其他自然语言的水平长度和英文字母并不相同,比如中文。用em表示水平长度就造成混乱,但是,字符都是由高度的,并且任何语言高度都是统一的,所以现在em是表示一个字符的垂直高度。 浏览器里默认的1em高度都是16个px。所以要使你的网页跨浏览器支持字体缩放,可以通过下面的方法把CSS中的px转换成em。 1.首先在body里设置font-size为62.5%,即:font-size: 62.5%; 因为1em = 16px,那么10px就应该是0.625em。所以把font-size缩小0.625倍,在换算器来就方便了。 另外最好把line-height也固定下来,即: line-height: 1.2em; 2.在CSS里原有的px除以10,单位改成em就可以了。默认字体就应该与转换之前一样。但是需要注意的是em的尺寸是有继承关系的。比如下面的代码: <div>Parents<ul>Children</ul></div> 如果设置div为1.2em,并且又设置了ul为1.2em,结果ul的字体大小不是1.2em,而是1.2 * 1.2 = 1.44em了。一定要注意。这样有个好处就是是你被迫的去删除多余的css字体大小设置。在编写CSS的时候不自觉的精简代码。 参考文章:How to size text using ems
Rails2.0定制action
Rubyonrails在完全接受REST思想推出2.0版本以后,action的写法与以前有了很大的不同。 一般的,index, show, new, edit, create, update,destroy默认的七个action就以足够了。但是如果有特殊要求的话,可以通过以下方法添加action。 比如在config/routes.rb有这样一个Resource: map.resources :courses 如果要向这个resource里加一个introduce action的话,只需要在后面加上:collection。 map.resources :courses, :condition => { :introduce => :get } :introduce即action的名称 :get是采用什么方式向server发送信息。根据需要也可以使用:post等。

