个人服务器搭建记
2007年03月28日 23:10
自从去年聚会被TR放了一把个人服务器的毒之后,搭建一个个人服务器就成了2007年我的年度计划之一。前阵子项目刚忙完,我就迫不及待的开始了个人服务器的组建工作。第一步是确立计划。我打算将个人服务器做成对外提供我和LP的blog,以及我的相册和小虫录像的发布站点,另外还可以做一些临时文件的共享。说到底,对外部分主要是建立一个和朋友之间的交流点。对内,我希望它能够变成一个共享上网的路由器(我们小区的宽带限制了一个接入点只能同时有2台机器拨号,而我家的电脑经常会有3台,甚至4台。有路由的话就可以同时上网了),以及文件服务器。
首先当然是硬件。挑选再三,我决定使用Dell的GX150准系统。这个准系统因为有些年头了,所以现在的价格,以及相应的配件都很便宜。一台看起来还很新的GX150,搭配PIII 1G的CPU和512M的SDRAM,只需600多元即可搞定。另外,这个准系统带有我所需要的所有基本配置:内置网卡、显卡,有紧凑式的CD-ROM,可以最大限度的省电。
几天等待之后,GX150终于到手了。

机器看起来不错,很新的感觉。

带着兴奋的心情,开始组装。没想到很快就碰到了第一个问题:我原先准备好的160G硬盘,在这个系统中居然不认!这个问题我倒是事先没有想到,因为我接触硬件比较多的那段时间里,一直没有走在时代的尖端过,所用的设备,都是当时最保守的,因此从来没有为“系统不认最新技术的设备”之类的问题困扰过。可是这一次不一样,我是在技术发展了很久之后回过头去用老设备,因此在现代社会中毫不起眼的160G硬盘居然变成了“太先进而认不出”的东东。没办法,以前没有准备过的功课,不得不重新拿起来复习一遍。刷BIOS,无效;硬盘跳线,无效;手动设置参数,无效……,忙活了1个晚上之后,我终于觉得这个硬件是不可能支持这样大的硬盘了,因为我已经尝试了所有我能找到的方法。最后没有办法,只能决定把我现在用的80G硬盘和这个160G硬盘做一下交换,PC机使用160G而服务器使用80G。
第二天,又是迁移系统,重新分区格式化硬盘……,忙了半天,终于把老系统迁移到160G上,然后将80G的硬盘装进了服务器。还好,80G的硬盘它还是认的。于是开始安装Ubuntu Server 6.10操作系统。这个系统不像Desktop,没有livecd的功能,而且安装界面是文本的。毕竟用了这么久的Linux,安装倒没有碰到太大的困难,安装完基本系统之后,可以选择DNS Server还是LAMP Server,我自然是毫不犹豫的选择了后者。
安装完系统之后,考虑到不能长时间霸占LP的电脑,而加上服务器之后只能有一台电脑可以上网了,我决定首先配置防火墙和路由。我选择的工具是shorewall,这是Ubuntu推荐使用的防火墙软件。它不同于Windows下的防火墙概念,shorewall并不作为服务一直运行。因为Linux的内核是支持iptables防火墙功能的,shorewall只是帮助配置了iptables的规则并激活了iptables能力,做完这些事情之后它就退出,剩下的事情就由Linux内核完成了。而它的好处是,shorewall配置文件比iptables简单很多。
我是通过交换机拨号上网的,eth0本地网卡作为本地网络的接口,ppp0作为外部网络的接口。然后根据shorewall网站上的Two-Interface说明,分别配置/etc/shorewall目录下的shorewall.conf、zones、interfaces、policy和rules,就可以把防火墙部分设置好了。在路由部分遇到了一点问题,网上找了资料才知道路由需要配置masq文件,但是因为对masq所做事情的实质没有搞清楚,结果把dest和source interface写反了。 -_- 我说怎么路由功能总是弄不出来。后来才发现原来是一个配置上的低级错误。所有配置完成之后,执行sudo shorewall start就可以启动规则了。
再接下来就是配置apache2。由于安装的时候直接选择了LAMP Server,所以Apache2、PHP、Mysql已经都安装好了并且做了基本的配置,不需要自己再操心了。但是因为不喜欢数据库,我打算不到万不得已不使用mysql。因为没有固定的IP地址,我申请了一个3322.org动态域名解析的免费服务。并且为我和LP分别设定了一个URL地址。然后,到/etc/apache2的sites-available里去设置了两个Virual Host,并在sites-enable里做两个soft link就可以了。这种enable机制我认为的确比较方便。
然后就去下载安装了现在这个Blog ── pivot。之所以选择这个系统,就是因为它不依赖数据库,安装维护特别方便。(我只要定期打个tar包就可以全站备份了,连Blog本身的配置和blog内容)当然做应用系统的配置就是个细致活了,这里不一一细说。还好pivot算是一个比较简单的系统,上手不算困难。折腾了一天,基本上有点样子了。
接下来就是相册系统了。上网找了一圈,没有找到特别合乎心意的,所以我打算自己写一个简单的。不过这是接下来的工作了。
不管怎么说,服务器现在已经启动了,接下来的事情还有很多。希望自己有这个恒心和毅力坚持下去。
1条评论

严格的说法是,今年举行的原本应该在去年举行的聚会. TR@SOE - 2007年03月29日 16:14