非常小众 Rotating Header Image

November, 2010:

在VPS上自动备份Mysql数据库

在VPS上可以通过简单的Shell脚本和Cron来实现对Mysql的自动备份

编辑备份脚本如下,(注意: 里面的OUTPUT所指定的是你要存储备份的绝对路径)

#!/bin/sh
DATE=`date +%y%m%d`
OUTPUT=/path/for/backup
TARGET=$OUTPUT/mysql.$DATE.gz
rm -rf $TARGET
mysqldump --all-databases | gzip > $TARGET

上述脚本为备份所有数据库,如果是非mysql root用户,只备份自己所需的数据库,那么将上面最后一行替换成,

mysqldump -u your_user --password="your_passwd" --database "your_database" | gzip >$TARGET

将上述脚本存为backup_mysql.sh, 并设置成可执行。

 chmod +x backup_mysql.sh 

然后编辑/etc/crontab, 在最后增加下面一行,每天凌晨1点备份数据库,(注意: 你需要根据你的脚本路径来修改)

 00 1 * * * root /path/of/backup_mysql.sh 

在Ubuntu环境的VPS上编译Nginx-0.8.53

1. 从Nginx官方下载Nginx-0.8.53 源码

wget http://nginx.org/download/nginx-0.8.53.tar.gz

2. 准备编译环境和相关依赖的库

sudo apt-get install build-essential
sudo apt-get install libpcre3-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev

3. 解压并开始编译

tar xvzf nginx-0.8.53.tar.gz
cd nginx-0.8.53
./configure
make

如果不出意外,在obj目录,可以看到nginx,运行检查版本,显示如下,

# ./nginx
# nginx version: nginx/0.8.53

在Nginx下如何实现WordPress Permalinks的Rewrite

今天把VPS上的LAMP环境更换成了LNMP(Linux+Nginx+Mysql+PHP),主要是为了 提高性能,结果发现permalinks无效了,研究了一下,结果发现是Nginx下的rewrite写法和Apache的不一样,也不是很难改,大同小异。:)

我的Permalinks是 /%category%/%postname%/

先贴一下增加的rewrite规则,

location / {
if ($http_user_agent !~ FeedBurner) {
    rewrite ^/feed/?$ http://feeds.feedburner.com/yourfeed last;
}
rewrite ^/wp-admin/$ /wp-admin/ break;
rewrite ^(.*)$ /index.php?q=$1 last;
}

对上面的rewrite规则简单说明一下,(location / 是我的WordPress的目录,如果你是其他,如/blog,/wordpress等,需要相应的修改

第一条,将WordPress的RSS,强制跳转到Feedburner的RSS。
第二条,对于管理页面的链接,不做rewrite。
第三条,将我的permalinks转成WordPress的规则。
(目前位置,似乎还可以,没有什么问题)

接下,上面的这块规则加到那里才能生效?

1. 如果你已经有了.htaccess文件,想我这样从Apache转过来的,你可以修改.htaccess. 但是你需要在nginx.conf中增加, (.htaccess被include的位置,和下面增加的位置一致即可)

include /path/to/your/.htaccess

2. 直接修改nginx.conf文件,如下

... ...
server
        {
                listen       80;
                server_name openroc.com www.openroc.com;
                index index.html index.htm index.php;
                root  /var/www;

                location / {
                     rewrite ^/feed/?$ http://feeds.feedburner.com/yourfeed last;
                     rewrite ^/wp-admin/$ /wp-admin/ break;
                     rewrite ^(.*)$ /index.php?q=$1 last;
                }

                location ~ .*\.(php|php5)?$
                        {
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fcgi.conf;
... ...

最后, Restart Nginx, 使新的配置生效。:)

修复Pidgin无法验证MSN证书的问题

这几天发现pidign上的MSN总是掉线,原因是MSN的证书的验证问题。 今天看到Pidgin 2.7.7升级的信息,发现新的版本已经修复了这个bug。

如果是Ubuntu,可以下载pidgin的PPA源的deb包来升级,或者下载Pidgin2.7.7的源码编译。

下面以下载PPA源来升级到2.7.7,通过下面几个命令可以搞定,:)

wget http://archive.getdeb.net/install_deb/getdeb-repository_0.1-1~getdeb1_all.deb

sudo dpkg -i getdeb-repository_0.1-1~getdeb1_all.deb

sudo apt-get update
sudo apt-get upgrade

从新登录,无法验证证书的问题没有了。:)

更多关于Pidgin 2.7.7,参见CHANGLOG,在这里下载不同平台的版本。