4月 13

nginx 区分移动设备配置

  当期需求,要将来访请求区分开,pc使用页面展示,android和iphone转向相应的页面,配置如下,文中连接只是为了演示:
server {
listen 80;
access_log off;
server_name simonzhang.net www.simonzhang.net ;
modern_browser unlisted;
set $ismob 0;
if ( $http_user_agent ~ “^((.*iPhone.*)|(.*iOS.*)|(.*Safari.*))$”) {
set $ismob 1;
rewrite ^(.*) http://www.simonzhang.net/?page_id=782 break;
}
if ( $http_user_agent ~ “^((.*Android.*))$”) {
set $ismob 1;
rewrite ^(.*) http://www.pixshow.net/robots.txt break;
}
if ( $http_user_agent ~ “^((.*Windows NT.*)|(.*Intel Mac OS.*))$”) {
set $ismob 1;
rewrite ^(.*) http://www.simonzhang.net/ break;
}
rewrite ^(.*) http://www.pixshow.net/ break;
}

注:此类配置并不能百分之百区分出设备,毕竟有写设备还是不守规矩。

2月 17

mysql 升级5.5.20 注意问题记录

当前使用mysql5.1但是有些表情字符不能加入,所以决定将数据库
升级到5.5.20。从官方下载二进制64位工具。
http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.20-linux2.6-x86_64.tar.gz/from/http://mysql.cs.pu.edu.tw/

直接解压,将老版本的数据直接拷贝过来,启动数据库。整个过程比较顺利,
数据库已经运行,为了避免以下错误,还需要进行以下操作。

a) 错误1548 – Cannot load from mysql.proc. The table is probably corrupted.

需要对数据进行升级。执行以下命令。
$ mysql_upgrade -u root -p
在出现一堆ok后升级完成。

b) 岁然数据库和数据升级了,还需要修改表的字符集。(根据需要进行修改)

登录mysql,进入相关库,使用如下命令。
> alter table xxxx charset utf8mb4;
当前数据库可以支持iphone表情和奇怪的字符集了。

升级过程注意保存原有配置。