文章存档

找到志同道合的人又要开始忙了。

晚上和HR的人一起吃饭,在世贸的大脸谱吃火锅,10个人800多。真贵,关键味道还就一般般而已。重点是:妈蛋我就喝了两杯头就晕乎乎的醉了。不过现在眯了一下原地满血复活了。

刚把一个坑爹网站一些改动给唰唰唰的敲完了。简直原地满血复活了。说到这个坑爹的站,为毛坑爹呢,一个商城,对方才开价1.2W。简直太少了。然后各种改动。还好ecshop比较熟悉。不过最近也好累,上班半天敲代码搞公司商城的APP API,下班搞这个商城的WEB端。对方还提出要求要搞移动端,我靠,简直要死人。好在这事儿要结束了。最近几乎每天敲代码12+小时。真的好累。过几天要休息一下。不过这个月收入还不错。牛市让我基金也赚了点。都准备把基金弄出来买股票了。

最近找到一群人,正好想法一致,我们可能最近会一起想办法做一个项目,如果这个项目能做起来,每个月额外收入会很不错的。来南昌以后觉得跟新余不一样的就是玩的少,在新余经常会和小伙伴一起出去玩,吃饭啊、桌游啊、唱歌啊什么的。最近和同事在一起却很少想着玩什么,大家都是想着怎么赚钱。有一天突然觉得,身边什么样的人,就会做什么样的事儿。真的是这样子。只是不管是新余的小伙伴还是现在个别个给力的同事朋友们。都只是附带着去影响自己的。最重要的还是自己,我有时候觉得我是有那么点随大流啊。哈哈。来南昌块4个月了,电影都没怎么去看,一是因为太忙,二也是因为没有人一起。不过茫茫碌碌总比闲着好,怕就怕忙碌最后都是空哇。

觉得人真的是被逼出来的,如果去年我没有炒白银亏了将近3W,我不会逼的自己这么快换工作来涨工资还钱,如果不是觉得自己跟一些同龄朋友比起来自己就是一个弱逼,我也许也不会逼的自己这么忙,这么坑,这么累去做一些事情。有时候也想好好放松一下啊,去吃吃喝喝玩玩,但是真的没办法去这么做。可能一放松就是掉下去。

最近和一帮子,一大帮子人。我们一大帮子人在微博上响应折花哥的号召,在组织建一个“花粉基金”,这里各行各业的人都有,金融界大拿、VC、天使投资人、做并购的、做上市的、做基金的、学生、上班族,都有。我在里面就出点子技术维护下论坛,可能后期要做一个官网之类的。我们都是出于自发性的组织起来做这些事儿,不收费,也不求回报。只希望有一天大家提到这件事儿的时候,我可以说我参与过这个项目的建设。那也是一件美事儿。在这里也能认识很多牛人,才会发现自己原来真的很渣渣很渣渣。眼界越开阔,越会发现自己其实一直都在坐井观天管中窥豹。

努力吧,骚年,有些事儿,该做的,得做!

svn添加钩子hooks并解决hooks速度慢。

前几天安装好了SVN,然后想要提交之后直接放到web目录中,可以直接通过web访问页面效果。于是知道了有钩子这么个东西。
假设已经有了svn project,我们需要做一下操作:

  • 在web目录里面checkout对应的代码文件
  • 创建钩子模板并赋予执行权限
  • 敲入钩子文件的内容
  1. checkout代码的文件
    在web目录下创建网站对应的文件夹,我这里直接给文件夹命名为svn,并且checkout

    mkdir /home/wwwroot/svn 
    cd /home/wwwroot/svn
    svn checkout svn://127.0.0.1 ./
    

    完成以后目录下会多了.svn的隐藏文件夹

  2. 创建钩子
    在创建好svn project之后会有如下目录结构。我们的钩子就存放在hooks里面。

    svn目录

    我们需要做下面步骤:

    代码如下:

    cd hooks
    cp post-commit.tmpl post-commit #拷贝一个钩子模板
    chmod 777 post-commit #赋予可执行权限
    vim post-commit
    
  3. 编辑钩子文件
    找到/svn/svntest/hooks/post-commit,
    进入到post-commit编辑状态后,我们最好把里面的内容都给注释。然后敲入以下代码:

    #!/bin/sh
    SVN=/usr/bin/svn #svn执行文件所在的文件夹
    WEB=/home/wwwroot/svn #svn项目所在目录
    LOG_PATH=/svn/svntest/svn_hook.log #我们定义的一个log文件
    echo "------------Start Commit -----------" >> $LOG_PATH
    echo "Time:"`date '+%Y-%m-%d %T'`>>$LOG_PATH #这里是在日志中写入执行的时间
    cd $WEB
    for dir in 'svnlook dirs-changed /svn/svntest'  #查找有修改过的文件,并将修改过的内容部署到web目录
    do
            #下面一句执行update命令
            $SVN  update $WEB --username "aoxiang" --password "aoxiang" >> $LOG_PATH 
    done
    echo "------------Commit End---------------" >>$LOG_PATH
    

    这里解释一下代码:
    我在部署完钩子之后,发现有一个问题:

    在本地commit 到服务器以后,速度都很快显示100%,但是进度条会一直卡在最后不动很长时间。

    我的项目大概400MB,当时就怀疑是钩子的原因,导致commit速度下降。
    最后找到方法:

    先找到有修改的目录,然后将修改的内容部署到web目录,这样就不会把整个项目部署到web目录

    for dir in 'svnlook dirs-changed /svn/svntest' 
    do
        #这里是要执行的代码
    done
    

    svnlook dirs-changed命令用来找打修改过内容的目录

    下面一句就相当于是在我们对应的svn的目录里面执行了update命令

    $SVN update -N $WEB --username "aoxiang" --password "aoxiang" >> $LOG_PATH

以上基本上就ok了。今天主要被上传速度困扰了一天。后来找到方法先检查修改的文件后,顿时就搞定了

Centos 安装SVN服务器

之前一直想搭Git服务器,搭了好久没有搭好。后来还是选择搭SVN了。代码丢上来

  1. 检查已安装版本 
    #检查是否安装了低版本的SVN
    rpm -qa subversion
    #卸载旧版本SVN
    [root@localhost modules]# yum remove subversion
    
  2. 安装SVN
    yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
  3. 确认已安装了SVN模块
    cd /etc/httpd/modules
    ls | grep svn
    #会返回以下内容
    #mod_authz_svn.so
    #mod_dav_svn.so
    
  4. 验证安装
    检验已经安装的SVN版本信息

    svnserve --version

    返回以下内容:

  5. 创建代码库
    SVN软件安装完成后还需要建立SVN库

    mkdir -p /svn/web
    svnadmin create /svn/web
    

    执行上面的命令后,自动建立web库,查看/svn/web 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

  6. 配置代码库-设置SVN用户名及密码
    进入上面生成的文件夹conf下,进行配置

    cd /svn/svn/conf
    #用户密码passwd配置 
    
    规则如下username=password
  7. 权限控制-authz
    这里是设置用户访问权限、访问目录。

    vi authz
    #设置[/]代表根目录下所有的资源
    #rw是读写权限
    [/]
    aoxiang=rw
    
  8. 服务svnserve.conf配置
    vi svnserve.conf
    #追加以下内容
    [general]
    #匿名访问的权限,可以是read,write,none,默认为read
    anon-access=none
    #使授权用户有写权限
    auth-access=write
    #密码数据库的路径
    password-db=passwd
    #访问控制文件
    authz-db=authz
    #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
    realm=/svn/web
    
  9. 配置防火墙端口
    vi /etc/sysconfig/iptables
    #添加以下内容:
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
    #保存后重启防火墙 
    service iptables restart
    
  10. 启动SVN
    svnserve -d -r /svn/web
  11. 查看SVN进程
    ps -ef|grep svn|grep -v grep
    #返回一下信息:
    #root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /opt/svn/repositories
    
  12. 检测SVN 端口
    netstat -ln |grep 3690
    #返回一下信息:
    #tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN
    
  13. 停止重启SVN
    killall svnserve    //停止 
    svnserve -d -r /svn/web  // 启动 
    

centos安装memcache

这两天搞定了nginx+php+mysql+svn,最后一个就是memcache了。准备这几项都搞定了以后,着手开始重写博客。

因为,妈蛋看了半年前自己用CI写的博客的代码,都在想“我次奥,我当时怎么会写出这么垃圾的代码!!!”

memcache分为服务器端和PHP扩展,所以我们是需要分两块进行安装的。

  1. 下载相关组件。
    这里是下载服务器端用的组件,memcached和libevent,libevent是用于做Socket处理,其他的我也不清楚具体怎么。
    memcached:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
    libevent:http://www.monkey.org/~provos/libevent-1.3.tar.gz
    附上libevent官网:http://www.monkey.org/~provos/libevent/

    这里有我在百度盘留存的一份可供下载“libevent+memcached下载

    mkdir /opt/memcached
    cd /opt/memcached/
    wget http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
    
    mkdir /opt/libevent
    cd /opt/libevent
    wget http://www.monkey.org/~provos/libevent-1.3.tar.gz
    
  2. 安装libevent
    tar zxvf libevent-1.3.tar.gz
    cd libevent-1.3
    ./configure –prefix=/usr
    make
    make install
    
  3. 测试libevent安装是否成功
    ls -al /usr/lib | grep libevent

    反馈如下

    libevent安装测试

  4. 安装服务器端memcached
    cd /opt/memcached
    tar zxvf memcached-1.2.2.tar.gz
    cd memcached-1.2.2
    ./configure –with-libevent=/usr
    make
    make install
    
    

    如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
    反正我是一路正常的走下来,没有发现有报错的情况
    安装完成后会把memcached放到 /usr/local/bin/memcached

  5. 测试是否安装成功
    ls -al /usr/local/bin/mem*
    

    反馈如下

    memcached安装反馈

(更多…)