官方安装文档 installation-requirement

Centos 选择Redhat系列

wget http://www.phabricator.com/rsrc/install/install_rhel-derivs.sh
$ cd somewhere/ # pick some install directory
somewhere/ $ git clone git://github.com/facebook/libphutil.gitsomewhere/
$ git clone git://github.com/facebook/arcanist.gitsomewhere/
$ git clone git://github.com/facebook/phabricator.git

配置自己的web指定的服务器。

根据提示设置mysql用户名密码,导入数据

phabricator/ $ ./bin/storage upgrade 

通过http访问如果提示 [Exception] Failed to open process 说明proc_open有问题,检查是否开启了php.ini中disable_functions功能是否存在该函数,并且去掉。

最近再总结一些PHP的规范, 正好项目也需要文档管理,翻到了phpDocumentor, 说起来现在有了phpDocumentor2了,用起来感觉还是很方便, 而且还带bootstrap样式,就安装到使用的过程写下来, 与大家分享。

这里是官方网站: www.phpdoc.org

通过pear安装phpDocumentor2

$ pear channel-discover pear.phpdoc.org
$ pear install phpdoc/phpDocumentor-beta

因为phpDocumentor2是通过xml的方式来读写模板
安装php-xml

$ wget http://www.graphviz.org/graphviz-rhel.repo /etc/yum.repos.d/graphviz-rhel.repo
$ yum install graphviz

使用phpDocumentor2
phpdoc -d指定文件夹,-t输出文件夹,–template使用模板

$ phpdoc -d /mnt/siteroot/im.crackedzone.com/ -t /mnt/siteroot/im.crackedzone.com/docs --template responsive</pre>

当然如果不习惯phpDocumentor2,也可以安装phpDocumentor1,下载地址

#1.5
pear install PhpDocumentor-1.5.0a1
#1.4.2
pear install PhpDocumentor-1.4.2
wget http://download.pear.php.net/package/PhpDocumentor-1.4.2.tgz

由于模板的关系1.5版本一下都是使用iso-8859-1的编码,所以为了防止乱码
转化编码防止乱码

find ./ -name '*.tpl' | xargs sed -i 's/iso-8859-1/utf-8/g'

相对于比较早期的系统,如Centos 5版本其实默认是没有安装Git。
所以只能手动安装

安装包下载

可以选择一个自己认为的稳定安装源,这里我选择git-1.8.3.1

wget http://git-core.googlecode.com/files/git-1.8.3.1.tar.gz
tar -xvf git-1.8.3.1.tar.gz
cd git-1.8.3.1/
./configure
make && make install

git依赖zlib-developenssl-develperlcpio,expat-devel,gettext-devel`这些包,
如果configure报错,通过yum安装缺失的依赖包即可。

安装完成后,可以通过查看版本来测试是否安装成功。

git --version

#选择admin数据库
use admin;
#创建一个用户名为root,密码为root的帐户;
db.addUser("root", "root");

#执行查看数据表,发现失败,需要登陆。
show collections;

所以我们重新登录test数据库

/usr/local/mongodb/bin/mongo -uroot -proot localhost:27017/test

发现还是失败,因为授权的是admin数据库,所以:

/usr/local/mongodb/bin/mongo -uroot -proot localhost:27017/admin

user test

创建一个用户名为test,密码为123的帐户;

show dbs;

因为用户test只是test数据的用户,只有admin数据库的用户才是超级管理员,可以查看任何数据库

启动服务的时候请加上--auth的选项

/usr/local/mongodb/bin/mongod --auth --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork

MongoDB才会进行认证

#save和insert方法类似,都是插入数据,但是save当主键相同的时候会自动更新
db.c1.save({_id: 1, name:'user7'});

#删除name为user1的数据
db.c1.remove({name:'user1'});

#批量插入数据
for(i=1; i<20; i++) { db.c1.insert({name:'user'+i, age:i }) }

#查询结构只需要 name, age, _id(id是默认有的)
db.c1.find({name:'user29'}, {name:1, age:1})

#查询结构只需要 name, 不用_id
db.c1.find({name:'user29'}, {name:1, _id:0})

#查询年龄大于5的数据
db.c1.find( {age: {$gt:5}} );

#查询年龄小于5的数据
db.c1.find( {age: {$lt:5}} );

#查询年龄大于等于5的数据
db.c1.find( {age: {$gte:5}} );

#查询年龄小于等于5的数据
db.c1.find( {age: {$lte:5}} );

#计算集合数量
db.c1.find().count();
db.c1.count();

#年龄倒序,取三条
db.c1.find().sort({age:-1}).limit(3);

#跳过2个,再去5个,LIMIT 2,5
db.c1.find().sort({age:-1}).skip(2).limit(5);

#count(1)表示统计之前的条件,否则跳过之前的条件
db.c1.find().sort({age:-1}).skip(2).limit(5).count(1)

#查询数组中包含相关值
db.c2.insert({name:"user1", post:[1,2,3,4,5]});
db.c2.find({post:{$all:[1,3]}});    #查询post包含1,3
db.c2.find({post:{$all:[1,6]}});

#查询age字段不存在的数据
db.c2.find({age:{$exists:0}})

#查询age字段除以2余1的数据
db.c1.find({age:{$mod:[2,1]}})