Submitted by gouki on 2012, February 10, 1:27 PM
之所以要转这一篇文章,是在于有人在THINKINLAMP的googlegroup里提问,说是怎么在svn提交的时候对phpdoc进行检查,需要让他们强制写注释,否则就不让他们提交,于是我说了是在老王的博客上。但后来我看了一下老王新的博客,huoding.com,这篇文章不在(没有迁移到新的博客中)。所以我重新在本地复制了一下他在百度博客里的文章。
原文来自:http://hi.baidu.com/thinkinginlamp/blog/item/17476d22661ee6a94623e8d7.html
PHP代码审计方面的软件越来越多了,PHPCheckstyle算是最近比较活跃的一个。通过SVN钩子脚本的方式来调用PHPCheckstyle,可以强制代码必须符合预先设定的编码标准(比如PEAR编码标准),有助于在多人合作项目中提高代码整体质量。
PHPCheckstyle的设置:
安装真的没什么可说的,属于接插即用型的,唯一需要设置的就是config目录下的配置文件:缺省使用的是default.cfg.xml,你可以编辑它,按照官方文档适当的增减规则。不过PHPCheckstyle项目诞生时间短,不够稳定,截至0.8版本为止还有不少问题,使用前最好逐条规则进行测试。
最简单的运行方法如下:
php run.php --src /path/to/file
这样的话会生成相关的html文档,如果你想直接输出的话,请使用:
php run.php --format console --src /path/to/file
更多选项可以自己看帮助(php run.php就可以查看相关帮助)
Subversion钩子脚本:
下面设置钩子脚本,具体点说是前置钩子,也就是:pre-commit,通过钩子检查后才被允许提交到版本库。只有添加或更新的文件是需要检查的,如果是 要删除的文件,则没有必要检查;还有一个问题,PHPCheckstyle只能检查具体文件的内容,而在提交之前,我们想要检查的文件还不存在,所以我们 得生成一个临时文件,检查完再删除,另外,在生成文件时要注意其唯一性,免得多用户一起提交时发生冲突,注意事项了解的差不多了,可以写钩子脚本了:
代码(at pastebin.com):
01 #!/bin/bash
02
03 REPOS="$1"
04 TXN="$2"
05
06 PHP="/usr/local/php/bin/php"
07 SVNLOOK="/usr/bin/svnlook"
08
09 RUNSCRIPT="/path/to/run/php/script"
10
11 CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep '^[U|A]' | awk '{print $2}'`
12
13 for FILE in $CHANGED; do
14 if [[ "$FILE" =~ \.php$ ]]; then
15 TEMPFILE=`mktemp`
16 $SVNLOOK cat -t "$TXN" "$REPOS" "$FILE" > $TEMPFILE
17 MESSAGE=`$PHP $RUNSCRIPT --format console --src $TEMPFILE | head -n -2`
18 if [ ! -z "$MESSAGE" ]; then
19 rm -rf $TEMPFILE
20 echo "$MESSAGE" | sed -e "s|$TEMPFILE|$FILE|" 1>&2
21 exit 1
22 fi
23 rm -rf $TEMPFILE
24 fi
25 done
关于Shell,如果有不清楚的可以自己搜索一下,网上有很多类似的文章。
钩子脚本还可以做很多事情,比如核对PHP脚本语法(php -l),而且通过管道符不用生成临时文件:
MESSAGE=`$SVNLOOK cat -t "$TXN" "$REPOS" "$FILE" | $PHP -l`
运行后,不用判断MESSAGE是否为空,而是根据退出状态来判断脚本是否有语法问题:
if [ $? -ne 0 ]
PHPCheckstyle配置和使用多少还是有点别扭,有机会试试PHP_CodeSniffer,配置钩子脚本更简单。
BTW:发现一个PHP Commit Hooks项目,有点意思,可以看看。
-------
---EOF---
最后,我也下载一份PHP COMMIT HOOKS项目 ,有点意思,可以少写很多了
Tags: svn, checkstyle, thinkinlamp
PHP | 评论:0
| 阅读:17568
Submitted by gouki on 2012, February 9, 11:05 AM
经过一段时间的使用和试用,想来想去还是准备将网站全线迁移到国外了。
目前已经在一些虚拟机上跑的网站有:
http://neatcn.com 其于免费的phpfog
http://ucapi.com 基于myvirpus
在这台服务器上,还有http://ilybaby.com和http://next-image.com.cn
http://kepo.net 基于:Burst VPS
上面还有一些站,不方便透露
本台服务器上面有一些小站,其实都已经没人用了,但是在坚持着,所以准备在到期之前全部迁出
好象burstVPS还不错,黑黑。所以,我到时候会另开一个burstVPS看看。
linode还是用不起啊
Misc | 评论:1
| 阅读:13789
Submitted by gouki on 2012, February 9, 9:10 AM
linux下面有一个很恶心的说法,就是磁盘空间再大,但如果没有inode了,磁盘也就相当于没用了(这个没用是指剩余空间再大,也存不进东西)
这种问题在ext3上很容易出现,如果磁盘格式是Ext3,然后又是用来存一些小文件(如图片、icon等小而多的文件)时,很容易出现这种问题。所以一般图片服务器都是不用Ext格式的。
虚拟机上居然出现了这种问题,所以找了一下资料,找到了这篇文章:http://www.cnblogs.com/shapherd/archive/2012/02/07/2341638.html
最近在linux上创建目录的时候出现mkdir:Cannot create directory***: No space left on device, 但是df的时候发现空间还有几百G(有同事是中文的机器出现Mkdir: 无法创建目录***,设备上没有空间)。不能继续创建目录或者touch文件的原因是Inode满了。
Inode的数量是有限制的,每个文件对应一个Inode, 那么如何查看inode的最大数量呢,
XML/HTML代码
- [work@*** ~]$ df -i
- Filesystem Inodes IUsed IFree IUse% Mounted on
- /dev/cciss/c0d0p2 1154176 172807 981369 15% /
- /dev/cciss/c0d0p3 88309760 51951 88257809 1% /home
可以看到Inode的总量,已经使用的Inode数量,和剩余数量。
如果watch -n 1 “df -i”一下, 然后去创建一个文件, 会发现已用的加一,未用的减一
简单了解下Inode在文件系统中的地位:
Linux会为每一个文件分配一个唯一的inode节点。在linux中,文件的文件名、文件属性、文件内容是分别存储的:文件名存放在目录项(即 dentry)中,文件属性存放在inode中,文件内容存放在block中。Linux在查找文件时,首先先读取dentry,dentry中存储的文 件名和inode编号的一个映射表, 根据这个表找到inode编号,再根据inode找到磁盘中的文件。
可以用ls -i查看文件对应的inode编号, 也可以直接stat一个文件, 会有很全的信息。
----------
ext4好象听说是好了很多,但更多的人在做图片服务器的时候都选择了:ReiserFS,可惜它不再更新了,为什么呢?因为。。。Linux文件系统reiserfs作者:Hans Reiser被判入狱15年
http://linux.solidot.org/linux/08/08/30/0449258.shtml
- Linux文件系统reiserfs作者Hans Reiser因谋杀妻子正式被宣判入狱15年。今年早些时候,Reiser承认了罪行,并领着警察挖掘出妻子的遗体。他的陪审团在4月份判定Reiser一级谋杀罪名成立,将面临25年的监禁。但是随后政府和他进行了秘密交易,如果他透露妻子的遗体并放弃上诉的权利,他的入狱期限将降至15年。
-
- 在宣判前Reiser发表声明,“我真诚的为我的罪行向社会致歉。每一个生命都是神圣的,我取走了一个人类的生命,对此我感到难过。”Hans Reiser在2006年9月下午4:30杀手了妻子Nina,他用手捂住她的嘴,使她窒息而死。他暂时将其藏在浴室,后移至汽车,尸体一直在车上呆了两天直到他寻找到埋藏的地点。"
BTW:这里有一篇科普文章:http://www.serverfocus.org/reiserfs-vs-ext4-vs-xfs-vs-zfs-vs-btrfs
原来,reiserfs已经升级到4了。
Linux | 评论:0
| 阅读:17001
Submitted by gouki on 2012, February 8, 2:48 PM
NTFS和FAT32应该是我们众所周知的格式了。当然还有ext3,ext4现在也慢慢成为android用户所熟知的了(IT从业者除外),嗯苹果同样与众不同,它是HFS格式。这下子纠结了,这么多格式,怎么互相兼容呢?特别是我们的U盘、移动硬盘之类的。
在linux下面,可以很方便的读取NTFS、FAT32格式的U盘,当然,也能很顺利的写入
苹果也能顺利的读取这类格式的U盘,但,不能写入。肿么办?(不过FAT32是可以读取和写入,但不支持4G以上的文件(单个文件)【高清片一定会超】。)
不过,苹果电脑 Mac OS X 10.6.5 系统做出了一项意义重大的升级:支持 exFAT 磁盘格式,格式化成 exFAT 格式的 U 盘、移动硬盘在 Windows PC 上和苹果电脑 Mac OS X 系统下均能读写,而且支持超过单个体积超过 4 GB 的大文件。
MAC下可以直接格式化,WIN7和vista也是直接OK。不过格式化后的磁盘RW速度会略有下降,只能取平衡点了。
参考:http://www.mac52ipod.cn/post/use-u-disk-hdd-on-windows-pc-and-mac-os-x-4gb-exfat.php
按照上面的文章所说: 只把 U 盘和移动硬盘的一个分区(专门用于 PC、Mac 之间交换文件)格式化成 exFAT 就行了。
Tags: exfat, ntfs, fat32
苹果相关 | 评论:0
| 阅读:17021
Submitted by gouki on 2012, February 7, 4:52 PM
如果标题是真的。。。不知道我还会不会使用微博了
新浪、搜狐、网易,腾讯四大网站微博都将在3月16日全部实行实名制,采取的都是前台自愿,后台实名的方式。3月16日后,所有未实名认证的老用户将被强制拦截,不能再发言、转发
【《财经》综合报道】3月16日将成为北京微博老用户真实身份信息注册的时间节点,之后未进行实名认证的微博老用户,将不能发言、转发,只能浏览。7日上午召开的贯彻《北京市微博客发展管理若干规定》座谈会上,市网管办相关负责人披露了这一消息。
新浪、搜狐、网易,腾讯四大网站微博都将在3月16日全部实行实名制,采取的都是前台自愿,后台实名的方式。3月16日后,所有未实名认证的老用户将被强制拦截,不能再发言、转发。
2011年12月16日北京市发布《北京市微博客发展管理若干规定》其中明确规定微博中的个人注册信息需要使用真实身份。微博客账号注册信息真实是指用户提交网站注册的信息,用户使用微博客服务的名称可自愿选择。
据统计,中国的网民中有65%的人开通使用微博,微博账户数量超过3.2亿。
本文来源:财经网
原文来自:http://tx.southcn.com/c/2012-02/07/content_37445105.htm
为防该站删除此页,截图为证:
Misc | 评论:1
| 阅读:14783