UP | HOME

原创 2014年

Table of Contents

review board 安装使用小结

#+BEGIN_HTML
抽出了一些业余时间,折腾了几天,终于基本拿下了review board,安装配置完毕,并创建了第一个测试review code。
这过程中,遇到了不少问题需要记录一下的:

1. easy_install安装相关库的时候,很经常是极其郁闷,国外的源基本被墙,所以这里记录了一些国内对应的源 
   http://pypi.douban.com/  豆瓣  
   http://pypi.hustunique.com/  华中理工大学 
   http://pypi.sdutlinux.org/  山东理工大学 
   http://pypi.mirrors.ustc.edu.cn/  中国科学技术大学
   使用方法:easy_install -i 源 库;

2. 因为环境是使用apache+mod_wsgi,编译mod_wsgi模块的时候,请注意指定–with-apxs=这参数,
   尤其需要注意的是–with-python 这个参数,因为linux系统(centos)一般默认安装python2.4,
   我们使用py的时候,往往会重新安装为python2.7,因为需要指定你的python版本,免得带来不必要的麻烦;

3. python环境推荐使用python2.7;

4. 安装mysql-python库的时候,你有可能像我一样,安装没报任何的错误,结果importMySQLdb的时候却报错了,
   是尝试ln -s /usr/local/mysql/lib/mysql/libmysqlclient* /usr/lib  然后再ldconfig  有可能解决你的问题;

5. 下一步尝试使用post-review;

6. 缓存有空在改成memcached即可,现在使用的是file;

7. 图略。

2014.03.25 push
#+END_HTML

学习diff 和 patch 使用方法

#+BEGIN_HTML
演练:
Administrator@josephzeng-PC ~
$ cat a.php


Administrator@josephzeng-PC ~
$ cat b.php


Administrator@josephzeng-PC ~
$ diff -uN a.php b.php > t.patch

Administrator@josephzeng-PC ~
$ cat t.patch
--- a.php       2014-03-24 23:36:36.499564500 +0800
+++ b.php       2014-03-24 23:32:21.507979800 +0800
@@ -4,4 +4,5 @@
 }

 $a = new Test();
+$b = 1;
 ?>

Administrator@josephzeng-PC ~
$ patch -RE -p0 < t.patch
patching file a.php
Unreversed patch detected!  Ignore -R? [n] y

Administrator@josephzeng-PC ~
$ cat a.php


Administrator@josephzeng-PC ~
$ cat b.php


备注:

单个文件
diff –uN from-file to-file >to-file.patch
patch –p0 < to-file.patch
patch –RE –p0 < to-file.patch
多个文件
diff –uNr from-docu to-docu >to-docu.patch
patch –p1 < to-docu.patch
patch –R –p1 

配置Nginx与Lua的history

#+BEGIN_HTML
$ wget http://sysoev.ru/nginx/nginx-1.2.6.tar.gz
$ tar -zxvf nginx-1.4.6.tar.gz
$ cd nginx-1.4.6
$ ./configure
$ make && make install
$ wget http://www.lua.org/ftp/lua-5.1.5.tar.gz
$ tar -zxvf lua-5.1.5.tar.gz
$ cd lua-5.1.5
$ make linux
$ cd ..
$ git clone http://luajit.org/git/luajit-2.0.git
$ git clone https://github.com/chaoslawful/lua-nginx-module.git
$ cd luajit-2.0/ 
$ make
$ make install
$ cd ..
$ export LUAJIT_LIB=/usr/local/lib
$ export LUAJIT_INC=/usr/local/include/luajit-2.0
$ cd nginx-1.4.6
$ ./configure --add-module=../lua-nginx-module
$ make -j2
$ make install
$ ln -s /usr/local/lib/libluajit-5.1.so.2 /lib/libluajit-5.1.so.2
$ /usr/local/nginx/sbin/nginx -v

配置Nginx与Lua的history。

备注:安装Lua或者LuaJIT都是可以的。

2014.03.19 push
#+END_HTML

import MySQLdb加载模块ImportError: libmysqlclient处理方法

#+BEGIN_HTML
今天为Python安装MySQLdb库,安装过程相当顺利。可惜测试的时候import MySQLdb加载模块ImportError: libmysqlclient_r.so.16。

于是google之,总结一下解决方法:

将mysql/lib下所有关于libmysqlclient的so文件软链接到/usr/lib下。

ln -s /usr/local/mysql/lib/mysql/libmysqlclient* /usr/lib
ldconfig

这样 import MySQLdb 的时候就不会出错了。

2014.03.19 push
#+END_HTML

cygwin安装java环境

#+BEGIN_HTML
首先windows上先安装java,过程略。

然后直接执行:
Administrator@pc-PC ~
$ export PATH=$PATH:"/cygdrive/c/Program Files/Java/jre7/bin"

Administrator@pc-PC ~
$ export PATH=$PATH:"/cygdrive/c/Program Files/Java/jdk1.7.0_51/bin"
即可在cygwin使用java环境。

当然你也可以采用在~/.bashrc或者/etc/profile中配置该路径即可。

2014.03.19 push
#+END_HTML

svn迁移记录

#+BEGIN_HTML
这两天需要将旧的测试服务器的svn迁移到新的测试机器上。然而旧的svn结构是每个项目为一个svn库的,如下结构:
svn://127.0.0.1/www1
svn://127.0.0.1/www2…….
新的测试svn的结构是只有一个svn库为test,如下结构:
svn://127.0.0.1/test/www1
svn:/127.0.0.1/test/www2…..

现在需要将旧svn库导入新的svn库,步骤如下:
svnadmin dump /svndata/www1 > www1-dumpfile
svnadmin dump /svndata/www2 > www2-dumpfile

svnadmin load /data2/svndata/test/ --parent-dir www1 < www1-dumpfile
svnadmin load /data2/svndata/test/ --parent-dir www2 < www1-dumpfile
当然,如果新迁移的目录结构为svn://127.0.0.1/test/www目录/www1目录 导入的命令则为
svnadmin load /data2/svndata/test/ --parent-dir www/www1 < www1-dumpfile
经测试,搞定!

备注:

迁移导入的时候,请先建立好目录www1,www2或www/www1 否则报错!

2014.03.10 push
#+END_HTML

mysql备份脚本

#+BEGIN_HTML
写脚本之前先试试
#mysqldump -h localhost -u root -1234 test > test-2012-2-7.sql
脚本
#!/bin/bash
cd /root/josephzeng-mysql/
dateDIR=`date +"%y-%m-%d"`
mkdir -p $dateDIR/data
for i in `/usr/local/mysql/bin/mysql -uroot -p123456 -e "show databases"  |
grep -v "Database" | grep -v "information_schema"`
do
  /usr/local/mysql/bin/mysqldump -uroot -p123456 $i   |
gzip  > /root/josephzeng-mysql/$dateDIR/${i}_${dateDIR}.gz
done

测试

搞定。

2014.03.08 push
#+END_HTML

svn自动发布系统(web)

#+BEGIN_HTML
对自己写的svn发布系统总结:

1. 目标(web)机器创建rsync服务,并使用帐号为 www用户

2. svn代码机器安装python及pysvn库

3. svn 增加钩子 调用同步脚本py

4. 同步脚本py(通过pysvn检出或更新 副本到目录data,并获取检出或更新文件列表 生成rsync命令)

5. 测试

备注:

同步脚本做好logs,并记录好什么时候谁进行了同步

难点:理解rsync服务,特别是它对及层目录没的时候该如何才能自动创建目录及文件,还有需注意svn 删除操作的时候,rsync服务是需要刷新整个目录来删除的,所以需注意一些目录的排除刷新。

代码整理好再公布。

2014.03.08 push
#+END_HTML

回顾音乐达人项目

#+BEGIN_HTML
需求:
1. 普通人 (注册帐号,独立网页空间,收藏视频,关注音乐达人及申请成为音乐达人)

2. 音乐达人
1)注册帐号
2)创作视频
3)上传视频并填写相关资料及联系方式
4)审核视频
5)通过则为音乐达人,不通过需重复上面流程
6)拥有独立网页空间 (音乐达人曲风,浏览量,作品等等)
……

3. 技术 nginx php flash js redis memcached cdn 云存储 ffmpeg等等…….

备注:
无法提供详细。申请及审核流程是否合理直接影响整个项目。

2014.03.08 push
#+END_HTML

vip项目改造总结

#+BEGIN_HTML
vip项目改造总结:
1. 增加年费标识
2. 充值表分表(临时请求,充值成功及备份)
3. 预消费分摊表(分表,按月)
4. 充值接口建议增加额外策略接口
5. 财务报表按日分摊
6. 即时生成分摊表改后台队列跑及以接口形式调用生成分摊记录
7. 分摊表生成改存储过程
8. 分摊表记录建议从库生成
9. 做好监控脚本
备注:财务报表需求是个头大的活。

2014.03.08 push
#+END_HTML

解决实际问题

#+BEGIN_HTML
解决实际问题作为出发点,技术是浮云;没有最好,只有最合适。

2014.03.08 push
#+END_HTML

linux下虚拟机修改时间无效处理方法

#+BEGIN_HTML
cd /proc/sys/xen
echo 1 > independent_wallclock
[root@sh232-xen xen]# cat independent_wallclock
1
[root@sh232-xen xen]#
然后再用 date -s进行修改即可!
2. 如果linux时区出现错误 按照以下修改
[root@sh232-xen ~]# cp -r /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
进行硬件同步
hwclock -systohc 或 hwclock -w
然后再 date -s 即可!

2014.03.07 push
#+END_HTML

Date: 2014-08-29

Author: josephzeng

Created: 2014-10-31 周五 13:19

Emacs 24.4.1 (Org mode 8.2.10)

Validate