centos 6安装apache 2.4.1

最近玩了一下centos 6.2(使用liveCD安装,是有桌面的),比起debian来,这个更合我的胃口,壁纸很不错。

初次编译安装apache,使用了最近刚发布的2.4.1版本,声称进行了大幅度的性能改性,并表示比Nginx更快,我安装的这个版本的系统自带了apache 2.2,不过不影响新版本的安装,没有尝试去升级,以后再去尝试一下。

安装好系统之后,我对系统进行了更新

yum check-update

yum update

从apache官方网站下载 Apache 2.4.1,或者命令行中使用wget下载。

wget -c http://labs.renren.com/apache-mirror//httpd/httpd-2.4.1.tar.gz

需要安装的一些库:gcc, autoconf, libtool,make,gcc-c++
然后进行编译,编译参数根据服务器的需求而不同,编译安装参考官方文档

./configure –prefix=/home/lampserver/apache2 –sysconfdir=/home/lampserver/conf/apache2 –with-included-apr -enable-so -enable-rewrite

make&make install

测试是否安装成功:

/home/lampserver/apache2/bin/apachectl -k start

打开http://localhost,你可以看到it works!的信息,停止把start换成stop。

configure那一步遇到了一个错误:

error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

尝试安装pcre的时候却告知我已经安装了

Package pcre-7.8-3.1.el6.i686 already installed and latest version

解决方法:安装的这个版本其实不是最新版,我也不知道为什么报错,但是从pcre网站下载最新版编译安装就可以了。

在debian上安装git-server

公司里转到git是不可能了,但是后面来的同学使用git可能性还是比较大的,所以决定把本小组的同学拉过来使用git,熟话说,不能不断学习新知识的同学不是好同学。

分享debian上安装git,并且配置用户管理。学习级别:so easy!
注:没有注明的操作都是在服务器端操作。

安装

1.安装git-core

sudo apt-get install git-core

2.安装 Gitosis

sudo apt-get install python-setuptools
mkdir ~/src
cd ~/src
git clone git://eagain.net/gitosis
cd gitosis
sudo python setup.py install

3.增加名为Git的用户

此处添加了用户和组,并且把git用户和git组关联起来。
sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git

4.上传公钥(如果没有,用 ssh-keygen -t rsa 生成,可以参考这里)到Git服务器.

本地客户端操作,(YOUR_SERVER换成你服务器IP或域名)
scp .ssh/id_rsa.pub git@YOUR_SERVER:/home/git
以上步骤你可以采取任何方法,比如ftp,samba等等。
Git服务器操作
sudo -H -u git gitosis-init < /home/git/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

配置

1.修改配置文件

确保客户端安装了git。没有安装的看这里
git clone git@YOUR_SERVER:gitosis-admin.git
成功后,在本地将有一个gitosis-admin目录,里面有gitosis.conf,keydir。
编辑gitosis.conf,添加如下内容(此处添加一个仓库,以及可读写的用户)
[group myproject]
writable = myproject
members = you@example.com

注:此处的you@example.com应该与keydir文件夹中的you@example.com.pub一致,否则会出现无权限的错误。
保存,提交修改
git commit -a -m "created a new repository"
git push

2.新建项目

mkdir myproject
cd myproject
git init
git remote add origin git@YOUR_SERVER:myproject.git
touch README
git add .
git commit -a -m "initial import"
git push origin HEAD:master

3.添加git成员,需要客户端生成key

cd gitosis-admin
cp ~/user_a.pub keydir/
cp ~/user_b.pub keydir/
cp ~/user_c.pub keydir/
git add keydir/user_a.pub keydir/user_b.pub keydir/user_c.pub

3.修改gitosis.conf

[group myproject]
writable = myproject
members = user_a user_b
[group myproject]
readonly = myproject
members = user_c

a,b有读写权限,c只有读权限,详细权限控制另外google。
提交修改:
git commit -a -m "Granted Alice and Bob commit rights to FreeMonkey"
git push

其他用户可以这样获取源代码:
git clone git@YOUR_SERVER:myproject.git
PS:附上Git手册《Pro Git》

参考文章:1, 2, 3

迟来的2011总结

时间,给我印象最深的除了珍贵,还有快,转眼之间已经来到了世界末日这一年,总结不在2011末尾有点可惜,但是总结不是形式,是一年的反思和对下一年的期许。
2010年3月来到广州,已经快2年了,成长了多少只有自己知道,却没有质的变化,让我的心中不断徘徊,过几天就要步入人生的第26个年头了,事业上的成果让我心中很酸。
回首2011:
工作:兼顾了前台设计,后台编码,如今我变得四不像,时间流逝,但是对于任一项技能却不能说深入,缺乏归纳,总结和分享,回首一年的工作,除了平淡还是平淡,没有任何的激情可言,没有成就感,需求的不断变化,每天不断的修修改改已经让自己厌烦了这份工作。
生活以及爱情:ing…
2012年开始,1月7号,爷爷离开了我们,第一次亲人的离开,不知道该是什么样的心情,1月8号匆匆赶回家中,亲戚都回到了老家戴孝,前后总共五天,这里让我看到了一个小型的社会,各种勾心斗角充斥着整个过程,认清了一些亲戚的真实一面,对于这些人的感情变成了不屑,社会也就是这样,你生活的好不好和我没有半毛钱关系,我生活的好就行了。

2012年的一些初步计划:
1.做一个关于wordpress的站,做出来就好。
2.换一个技术氛围好的工作。
3.学习python,编程基础。
4.入手一台mac。

WordPress主题:Octopress

Octopress是最近一段时间才发现的一个好东西,也在github上架起来了,但是由于在mac os下的效率很低,所以换回了windows,无奈就不能使用Octopress了,但是还是很留恋它的默认主题,于是花了点时间搬到了wordpress上,有一小部分还没有完成,不过已经不影响使用了。
喜欢这个主题的原因有几点,简洁大气,这个标题的字体大小够大,简洁,作为个人博客刚好适合,一篇文章占一屏,对于我这种很少写文章的人来说显得文章很多,还有一点就是它的代码高亮,虽然在wordpress下插入代码依旧很麻烦,而且在可视和代码之间切换的时候会有各种问题,但是既然用着就要忍受,所以使用了highlight的高亮,Solarized的配色也应该会让你感到赏心悦目吧。
移植这款主题基本没有写什么基本代码,只是把wordpress标签插入到相应的位置,评论的样式还在编写中,暂且将就着这样子了。这是一款小众的不能再小众的主题,恐怕只有那些有些偏执的人才会使用这么一款主题。如果你有那么一点偏执或者和别人与众不同,你可以下载试用,不过目前还有一些需要完善,你可以自行搞定的话,那么就立刻使用吧,没有我的版权在上面,但是style.css中的版权信息需要你为我保留。你修改过后再发布也不能在底部加上你的版权信息,一是真的加太多就不和谐了,二是让我们保留这个主题的简洁和美好吧。
代码高亮一段: 

class A &lt; B; def self.create(object = User) object end end
class Zebra; def inspect; "X#{2 + self.object_id}" end end

module ABC::DEF
  include Comparable

  # @param test
  # @return [String] nothing
  def foo(test)
    Thread.new do |blockvar|
      ABC::DEF.reverse(:a_symbol, :'a symbol' + 'test' + test)
    end.join
  end

  def [](index) self[index] end
  def ==(other) other == self end
end

anIdentifier = an_identifier
Constant = 1