搞定了blog的分类

2007年04月09日 16:15

终于把blog的分类搞定了,原来分类使用的是Weblogs的Extra template模板,原先不知道这个做什么用,随便设置了一下设成了entrypage_template,所以参数都匹配不上了。
改成frontpage_template就好了。汗。
BTW: 现在感觉Pivot的后台的确BT,设置被分裂到N多的地方,又没有一个特别好的文档,真是够晕的。

终于重装了Linux

2007年04月09日 09:51

不知道是不是受了在公司安装Ubuntu Fiesty的影响,周末心血来潮突然想升级了。于是驾轻就熟的更改sources.list,apt-get update,apt-get dist-upgrade,但是——重启之后机器起不来了,挂在了加载统一CD-ROM驱动(Unify CD-ROM driver)的地方。当时因为考虑到我迁移系统之后出现了一些小的问题,以为是迁移系统之后升级导致的。但是后来上网去查,发现不是,这是Ubuntu Feisty Beta的一个bug,如果从硬盘升级,会造成启动顺序方面的问题而导致系统进不去。因为这已经涉及到启动级别了,我自觉目前我的能力还不足以解决。又想以前的系统因为不熟悉乱装了很多乱七八糟的程序,也是时候清理一下了,于是决定重装。
这次重装,我选择的是Ubuntu Edgy Server版本,因为我不想从6.06版再起步了,而我恰好有Edgy Server的光盘。另外,我觉得Server不默认安装Gnome和X,正好可以有一个自己组建的机会。于是开始安装。前面的安装没有什么好说的,一个基本系统而已,因为之前有仔细的分区,这次重装只格式化了/、/usr和/var三个分区,将/home、Photo和movie的数据保留(这些可是原始数据啊)。装完之后第一步开始安装X,我装了一个最最基本的x-window-system-core,然后我选择了一个我觉得是最最轻量级的Window Manager——IceWM。(xfce4安装需要10多M,而IceWM只有1M多),基本的系统安装没有什么问题,只是这样装完不能显示中文,于是我又装了ttf-arphic-uming字体,装上之后就可以显示中文了,这次只装了这样一个中文字体,虽然不太好看,但是自己用用觉得也够了,不想再像以前那样折腾字体和美化的问题了。然后安装输入法,我仍然选择fcitx,然后在/etc/X11/Xsession.d里创建一个95xinput文件,写上

export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE="fcitx"
fcitx

就可以在启动X的时候启动启动fcitx了。
然后就是显卡驱动,先装了xorg-driver-fglrx,发现启动后显卡并没有加载,而且日志显示初始化错误。奇怪之余上网查了一下资料,发现原来少装了对应内核的linux-restricted-modules。汗,还是基础知识不够牢固。于是又apt-get install linux-restricted-modules-$(uname -r),竟然提示说没有对应的包。检查了一下,原来Ubuntu Server使用的内核是2.6.17-10-server,但是restricted-module只有2.6.17-10-generic,原来server版的内核不支持restricted-module -_-。手工指定安装linux-restricted-modules-2.6.17-10-generic,它会根据依赖关系自动装上对应的generic内核。安装完之后修改/boot/grub/menu.lst,将hiddenmenu去掉,将启动选择界面显示出来,然后手工去掉server内核的启动项。reboot,终于可以加载上fglrx驱动了。然后开始配置xorg.conf,这次没有像以前那样去网上找接近的文件来改,而是直接使用aticonfig --initial=dual-monitor;aticonfig -ovt=Xv来自动生成xorg.conf,然后再手工稍微改一下就行了。这里特别要提到刷新率的问题。开始在网上找了N多的解决方案,都没有用。最后看到一个说,只要在分辨率后面加上诸如“_85”这样的就可以了,抱着试试看的心情,将两个monitor的分辨率分别指定为“1024x768_85”和“800x600_60”,重启,果然可以了。汗,比我想象的还要简单。
IceWM只是一个纯粹的Window Manager,自身并没有任何组件,所以比如文件管理之类的还是需要单独安装。文件管理器我还是用了nautilus,虽然它有一个“用GVim打开”的bug,但是其他的方面我已经比较熟悉了,不想换了。然后为了以前我写的一些脚本能够正常使用,还装了一些必要的库,包括zenity,这个程序会显示一个对话框(可以指定类型,比如文件打开对话框、下拉选择框、日期选择框之类)。为了U盘能够即插即用,我还装了gnome-volume-manager,然后在~/.icewm/startup里写上

#加载桌面
nautilus --no-default-window &
#U盘即插即用
gnome-volume-manager &

然后chmod +x ~/.icewm/startup
这里有一点要注意,Ubuntu默认安装的时候,在~/.icewm里会放上一个preferences文件,但是这个文件有些bug,会导致startup文件无法加载。删除这个文件,有什么选项的改变用prefoverride文件代替,就可以了。
接下来就是配置IceWM,这个东东有很多选项,反正慢慢配就是了。这里就不多说了。然后还有就是安装软件,基本上就是要什么装什么,已经跟以前一样了。

想想第一次装Ubuntu的时候差不多折腾了一个星期,中间还格掉重装了好几次。现在只要1天的时间就可以将系统做到差不多完全恢复的程度,真是感慨万千。

QQ的键盘保护导致蓝屏

2007年04月06日 18:07

今天终于把公司机器上Linux操作系统里的VirutalBox虚拟机比较完美的安装好了,在找资料的过程中知道了Guest Additions这个好东西。想起来我的Windows下也有一个VirtualBox虚拟机,今天打算也拿出来晒晒,把Guest Additions装上。
结果可不得了,我刚点完界面上的Install Guest Additions菜单项,XP系统立刻蓝屏了。报npkcusb.sys错误。于是重新开机,没料到这次更糟,我刚打开VirtualBox窗口还没有做任何操作(包括启动虚拟机)就再次蓝屏了。我头上立刻冒出了豆大的汗珠——不会是机器出了问题吧……。再启动一次,仍然是一打开VirtualBox就蓝屏。我想,一定是VirtualBox出问题了,于是准备卸载。然后在卸载之前,我习惯性的把npkcusb.sys输到Firefox的google搜索框里搜索了一下,结果一看……幸亏下手没这么快,原来问题根本不是出在VirtualBox上。
我看到了一篇关于用USB外接键盘蓝屏问题的解决,才知道原来是QQ搞的鬼,因为我正好因为中午想玩游戏而接上了外接USB键盘,虽然后来没有用,但是一直没有拔下来。我因为觉得QQ太花哨而没有装QQ,只装了相对比较清爽的TM,因此我先尝试搜索了一下npkcusb.sys文件,发现有两个结果,果然都是跟腾讯有关。于是按照帖子里的方法把几个驱动删除,又去注册表搜索了一遍,发现我运气比较好,注册表并没有相关的项目,也就不用删了。再次重启,打开VirtualBox,果然就没有问题了。
腾讯为了防止木马截获键盘输入,制造了一样一个键盘保护机制,本意倒是好的。然而动不动就涉及底层,是比较危险的一件事情。没有经过充分测试,是很容易出问题的,而且这种问题会比用户层的问题严重得多。好在我蓝屏的时候没有写代码或者做别的什么有价值的事情,不然的话真是要欲哭无泪了。
其实腾讯倒是可以思考这样一个问题,微软也有IM、Yahoo也有IM、现在Google也有IM,为什么针对QQ的安全事件就特别多?有的时候,问题是更深层的,不从根本上解决,而只是兵来将挡水来土掩,不是个很好的解决办法。

Google输入法

2007年04月04日 10:39

Google终于推出中文输入法了,下载试用中……

Updated:
今天稍微试用了一下,也看了网上的一些评论,褒贬不一。
不过对我来说,因为用的是全拼,而且按照向来的习惯以词组方式输入(我一直无法习惯整句输入),并没有碰到什么大的Bug。总体使用感受跟紫光和搜狗差不多。

我个人比较喜欢的小特性有:
1、u功能(笔画输入功能)不错,对付生僻字很有用。
2、v功能(英文拼写建议功能)算是独创的,很有用。
3、自动同步功能对我来说很有用。如果推出Linux版本,这个功能对我而言将会更加有用。
4、中文状态下输入网址,还是比较方便的。

个人觉得比较不爽的地方有:
1、没有了紫光拼音的以词选字功能,不过考虑到Linux下的fictx也没有,倒让我觉得心理平衡点,哇咔咔。
2、搜索在我看来有点鸡肋,现在的搜索只能搜第一个备选词,意义不大,反而经常容易搞错,还不如不要,界面清爽点。
3、输入法的状态条太大的,又占地方又难看。不要跟我说简化模式,我不是想让它的长度减小,而是希望它的高度能够减小,瘦一点会比较好看。
4、跟Google Talk一样喜欢自作主张的升级,不给用户选择的能力。不过强啊强的大家就都顺从了,只要别自动升级升出问题,也就随他去了。(想到当年Ubuntu自动升级导致X进不去,我对自动升级其实还是有点敏感的)
5、个头太大,不知道里面都有些什么,怎么就10M了呢?我还是希望Google的产品都能像最初的Google Talk那样只有1M,多轻巧啊。

不过不管怎么说,G拼音已经是我公司电脑上的唯一输入法了,好坏不论,先用着吧。反正哪天觉得不爽了再换就是了,一个输入法还不至于绑住我。

切换IP地址的批处理脚本

2007年04月02日 13:39

家里的服务器做了路由之后笔记本不需要自己拨号了,只需要设置网关即可。因为家里的IP地址和公司的设定不一样,我就在连接的TCP/IP属性设定里增加了两个IP地址,同时设置了2个网关。但是我发现这样不行,设定2个IP地址没有什么问题,可以连到我的局域网电脑;但是设定2个网关就会出问题,一开始是可以正常访问外部网络的,使用一段时间之后就不行了,访问外部网络会time out。
解决方法当然就是到家里改成家里的IP地址,到公司改成公司的IP地址了。但是在那个属性设定的对话框里填写也太麻烦了,所以我上网找找看Windows是不是有类似Linux的ifconfig命令可以直接命令行设置的。
还好是有这个命令的,叫做netsh,这样事情就简单了。
写两个批处理,分别设定IP地址为公司的和家里的,到什么地方就执行一下对应的批处理就可以了。
批处理类似于下面这样:

netsh interface ip set address name="本地连接" static 172.16.1.77 255.255.0.0 172.16.0.3 1
rem 查看设定之后的结果
ipconfig /all
pause

注意netsh命令最后的那个1,应该是设定跃点数的,这个参数很不起眼但一定要设,开始我就是因为这个1漏写,造成执行不成功。

搞定了aMule下载

2007年03月29日 23:08

我做这台个人服务器的目的,除了搭建blog做相册和朋友交流之外,当然还有一个很重要的私人原因就是利用它24小时开机的优势,为自己谋点福利。其中最重要的当然就是使用aMule下载电影了。
aMule我并不陌生,在PC机上它就是我最常用的程序之一。然而服务器上没有安装X环境,况且我也不想直接在服务器接上键盘鼠标显示器来直接使用,因此,我需要一个命令行版本的amule。幸亏amule早就有这个东东,叫做amule-daemon,非但没有界面,而且可以作为服务开机运行。正合我意。
然而当我兴冲冲的sudo apt-get install amule-daemon的时候,却返回一个错误信息告诉我这个包不存在。愣了一愣并确认自己没有拼错软件名称之后,我想到是apt源的问题。然而作为一个服务器来说,使用第三放源是非常冒险的事情。还好我打开/etc/apt/sources.list之后,发现里面还有两行是被注释掉的。仔细看了看说明,这两行的目的是让你可以使用universe的软件。amule恰好是属于universe部分的。于是将注释去掉,sudo apt-get update,然后再次install amule-daemon,哈哈,终于可以了。
安装完成之后,有个提示告诉你,amule-daemon没有运行,请修改/etc/default/amule-daemon文件。打开这个文件一看,就两行设置,设置启动时是否自动运行amule以及使用哪个用户运行。我设置成使用我个人的用户运行。然后在命令行跑一下amuled,会告诉你有参数没有配置正确。于是进入~/.aMule/目录,打开amule.conf进行配置。这个amule服务是自带一个WebServer的,我当然希望能够配置好这个webserver,否则几乎就没有任何可用性了。为了使用WebServer,首先要让amule能够接受外部连接,AcceptExternalConnection要设为1。然后要给外部连接设置一个密码,ECPassword。但是这个地方填入的应该是MD5Sum后的结果,而不是密码本身。我就是在这里上了当,折腾了好半天。得到密码的MD5结果,可以用命令: echo -n yourpassword | md5sum | cut ' ' -f 1
全部设置完成之后,先在命令行运行amuleweb -w生成amuleweb所需的配置文件,然后sudo /etc/init.d/amule-daemon start运行程序,这样应该就可以了。因为我这里配置了防火墙,还需要开放4662/TCP,4665/UDP,和4672/UDP给外部网络,并且开放4711/TCP和4712/TCP给内部网络。其中4662是ed2k协议所需的端口,这个端口可以自己修改,修改完之后,一定要另外开放一个此端口号+3的UDP端口。4672/UDP是Kad协议所使用的端口,也可以自己修改。4711是webserver的默认端口,4712是amule接受外部连接时的默认端口,这些端口都可以自由修改。
全部配置完成后,重新运行shorewall,就可以在浏览器输入 http://<内网地址>:4711/ 来打开amule管理界面了。使用起来自然没有本地的GUI程序那么方便,但是考虑到这时一台24小时开机、低功耗的服务器,这种不方便忍受一下就算了。

现在主要的问题是,中文会乱码。以前用GUI的时候它会自动转码,Web界面就不会了。不知道能不能改。
Blog方面现在主要的问题是点击分类得不到结果,也要慢慢改了。
不过到目前为止进展还算顺利。接下来主要的工作是帮LP迁移Blog,以及写一个简单的照片幻灯展示程序。

个人服务器搭建记

2007年03月28日 23:10

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

带着兴奋的心情,开始组装。没想到很快就碰到了第一个问题:我原先准备好的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算是一个比较简单的系统,上手不算困难。折腾了一天,基本上有点样子了。
接下来就是相册系统了。上网找了一圈,没有找到特别合乎心意的,所以我打算自己写一个简单的。不过这是接下来的工作了。
不管怎么说,服务器现在已经启动了,接下来的事情还有很多。希望自己有这个恒心和毅力坚持下去。
Design downloaded from free website templates.