五颗大白兔奶糖
就在李光头极其孤独的时候,宋钢长途跋涉来看望他了。宋钢带着五颗大白兔奶糖,没有告诉他的爷爷,早晨就走出了村庄,沿途打听着去刘镇的路怎么走?快到中午时走到了李光头家的窗外,他敲着窗户喊叫:
"李光头!李光头......你在里面吗?我是宋钢。"
那时候李光头无聊的快要在床上睡着了,宋钢的喊叫让他蹦跳起来,他扑向了窗户,也敲着玻璃喊叫起来:
"宋钢!宋钢!我在里面。"
宋钢在外面叫着:"李光头,你开门呀!"
李光头说:"门外面锁上了,打不开。"
"你把窗户打开。"
"窗户被钉死了。" 李光头和宋钢这对兄弟敲着窗户激动地喊叫了好一阵子,下面的窗格玻璃被李兰糊上了报纸,兄弟两个看不见对方,只能喊叫着让对方听到。后来李光头搬了把凳子到窗前,通过凳子站到了窗台上,最上面的窗格玻璃没有糊上报纸,李光头终于看到了宋钢,宋钢也终于看到了李光头。宋钢穿着宋凡平出殡时的那一身衣服,仰脸看着李光头,对李光头说:
"李光头,我想你了。"
宋钢说着不好意思地笑了笑,李光头双手敲打着玻璃,哇哇叫着:"宋钢,我也想你。"
宋钢从口袋里摸出了五颗大白兔奶糖,捧在手里举起来给李光头看,他说:"你看见了吗?我给你的。"
李光头看见了大白兔奶糖,惊喜万分地叫道:"宋钢,我看见了,宋钢,你真好。"
李光头嘴里的口水横七竖八地流了起来,可是窗玻璃隔开了他和宋钢手里的奶糖,让他吃不到奶糖,他对着宋钢喊叫:
"宋钢,你想想办法,把奶糖弄进来。"
宋钢放下了举起的手,想了想后说:"我从门缝里塞进去。"
李光头赶紧下了窗台,下了凳子,凑到了门上,在最粗的那条门缝里看到了糖纸塞进来了,在缝里抖动着,糖果却进不来,宋钢在外面说:
"塞不进去。"
李光头急得抓耳挠腮,他说:"你想想别的办法。"
李光头听着宋钢在门外呼哧呼哧地喘着气,过了一会儿他说:"实在塞不进去......你先闻一闻吧。"
宋钢的奶糖贴在外面的门缝上,李光头的鼻子贴在里面的门缝上,李光头使劲吸着气,终于闻到了丝丝奶香,李光头不由哇哇哭了起来,宋钢在门外说:
"李光头,你哭什么?"
李光头哭着说:"我闻到大白兔奶糖了。"
宋钢在门外咯咯地笑了起来,李光头听到了宋钢的笑声后,也破涕为笑了。李光头哭一声笑一声,又笑一声哭一声。后来两个孩子靠着门板坐在了地上,隔着门板背靠背说了很多话。宋钢告诉李光头乡村的事,他说他学会了捕鱼,学会了爬树,学会了插秧和割稻子,学会摘棉花。李光头告诉宋钢城里发生的事,告诉宋钢,长头发的孙伟死了,那个点心店的苏妈也被揪出来挂上大木牌了。说到长头发孙伟是怎么死的时候,宋钢在外面抽泣了,他说: "他真可怜。"
两个孩子隔着门板亲密无间地说着话,一口气说到了下午,门外的宋钢看到阳光斜照到井那边去了,赶紧站了起来,敲着门对里面的李光头说,他要走了。他说回家的路很长,要早点回去。李光头在里面敲着门,哀求宋钢再和他说会儿话,李光头说:
"天还没黑呢......"
宋钢敲着门说:"要是天黑了,我会迷路的。"
宋钢走的时候把五颗大白兔奶糖压在门前的石板下面,他说放在窗台上会被人拿走的。他走了几步又回来了,他说放在石板下面怕被蚯蚓吃了,他又去摘了两张梧桐树叶,把奶糖仔细包好了,重新放到石板下面。然后他的眼睛贴着门缝看看李光头,对李光头说:
"李光头,再见。"
李光头伤心地问他:"你什么时候再想我了?"
宋钢摇摇头说:"我不知道。"
李光头听着宋钢的脚步渐渐走远,一个九岁男孩的脚步,走去时轻的像鸭子的脚步。接下去李光头的眼睛就贴在门缝上了,守护着外面石板下面的奶糖,当有人走近了,李光头心里就会一阵乱跳,生怕那人会翻开门外的石板。李光头盼望着黄昏快些来到,这样李兰就会回家,门就会打开,李光头就能吃到急不可待的大白兔奶糖了。
宋钢脚步轻轻地走出了小巷,走上了大街,他在大街上东张西望地走着,他看着熟悉的房屋、熟悉的梧桐树;看到有些人在打架,有些人在哭,有些人在笑;这里面有一些他熟悉的人,他对着他们微笑,他们却没有答理他。他有些失望地走过了两条大街和一座木桥,走到了南门外。他走出了南门以后,在乡间第一个路口就迷路了,天没黑他就迷路了,他可怜巴巴地站在那个路口,不知道自己应该向哪边走去,哪边都有田野和房屋,哪边都有遥远的地平线。宋钢在那个路口站了很久,终于有一个男人走来,他一声声叫着叔叔,向那个人打听爷爷的村庄,那个人摇晃着脑袋说不知道,然后摇晃着身体越走越远。宋钢站在广阔的田野中间,站在无边的天空下面,他越站越害怕,哇哇哭了两声后,擦擦眼泪往回走了,走过了南门,重新走进了我们刘镇。 宋钢走后,李光头的眼睛一直贴在门缝上,他的眼睛看酸了看疼了的时候,突然看到宋钢走回来,李光头以为是宋钢又想念他了,才走回来的。李光头高兴地捶着门,高兴地喊叫:
"宋钢,你是不是又想我了?"
宋钢站在门外摇着头,伤心地说:"我迷路了,我不知道回家的路怎么走,我都要急死了。"
李光头咯咯地笑,捶着门安慰宋钢:"你别急死了,等妈妈回来吧,她知道去你家的路怎么走,她会送你回去的。"
宋钢觉得李光头说得对,他使劲地点了点头,贴着门缝看了看里面的李光头,靠着门重新坐在了地上,李光头也在里面靠着门坐到了地上。两个孩子再次隔着门板背靠背,他们又说了很多话,这一次是宋钢告诉李光头城里发生的事,告诉李光头刚才路上看到的一切,哪里有人在打架,哪里有人在哭,哪里有人在笑。宋钢说着的时候突然想起了大白兔奶糖,他赶紧翻开石板拿出来奶糖,他说真危险啊,蚯蚓刚刚把树叶吃穿了,好在还没有吃到奶糖。他把五颗奶糖小心放入口袋,又用手捂住口袋。过了一会儿,宋钢轻声对李光头说:
"李光头,我饿了,我还没吃中午饭呢,我能不能吃奶糖?"
李光头在里面犹豫了一下,他有些舍不得,外面的宋钢继续说:"我真的很饿,让我吃一颗吧。"
李光头在里面点点头,他说:"你吃四颗吧,给我留一颗。"
宋钢在外面摇摇头说:"我吃一颗。"
宋钢从口袋里拿出一颗奶糖,看了一会儿,又举到鼻子处闻了一会儿。李光头在里面没有听到他嘴里的声音,听到的全是鼻子里的声音,李光头不明白,他问宋钢:
"你嘴里为什么有鼻子的声音?"
宋钢咯咯笑了,他说:"我没吃,我只是闻一闻。"
李光头问他:"你为什么没吃?"
宋钢吞着口水说:"我不吃了,这是给你的奶糖,我闻闻就行了。"
李兰这时候回来了,在屋里的李光头先是听到他母亲惊喜的喊叫,接着听到他母亲快步跑来的声响,然后听到宋钢喊叫着"妈妈"。李兰跑到了门口,一把抱住了宋钢,她嘴里说出来的话像是机关枪突突响个不停。李光头还像坐牢似的被关在里面,李光头使劲捶着门,又喊又叫,过了很久李兰才听到李光头的喊叫,才打开屋门。 李光头和宋钢终于正式见面了,两个孩子拉着手哇哇乱叫蹦蹦跳跳,跳得满头大汗,跳得鼻涕都流进了嘴巴。跳了差不多有十多分钟,宋钢想起来口袋里的大白兔奶糖,他抹了抹头上的汗水,将奶糖摸出来,一、二、三、四、五地数着,一颗一颗地放到了李光头的手上,李光头把四颗放进了口袋,一颗当即剥了糖纸放进了嘴巴。
李兰在丝厂挨了一天的批斗,她走回家中时疲惫不堪,可是她见到宋钢以后,立刻兴奋
的满脸通红。自从宋凡平死后,李兰第一次这么高兴,她说宋钢来了,晚上要让两个孩子吃一顿好吃的。她拉着两个孩子的手走上了大街,说要去人民饭店吃面条。他们走在黄昏的大街上,李光头觉得自己仿佛几年没有上街了,他高兴得已经不是在走了,而是在跳跃,宋钢也像李光头一样跳跃着向前走去。李兰满脸笑容地拉着两个孩子,李光头很久没有看见她的笑容了,她的笑容让两个孩子跳得更加欢快。
他们走到桥上时,看到点心店的苏妈挂着木牌低头站在那里,她的女儿苏妹站在旁边,举着手拉着苏妈的衣服。宋钢看到苏妈后走了上去,问苏妈:
"你这么好的人为什么也挂上大木牌了?"
苏妈低着头一声不吭,苏妹听了宋钢的话以后,举手擦起了眼泪。李兰低头站在那里,轻声说着话推了推李光头,要李光头给苏妹一颗奶糖。李光头吞着口水,从口袋里摸出一颗大白兔奶糖,依依不舍地递给了苏妹,苏妹擦着眼泪的手接了过去。苏妈抬起头对李兰地笑了笑,李兰也对苏妈笑了笑。李兰站了一会儿后,拉拉宋钢的手,宋钢知道该走了,对苏妈说:
"你放心,你会有善报的。"
苏妈低声对宋钢说:"好孩子,你也会有善报的。"
苏妈说着抬头看看李兰和李光头说:"你们都会有善报的。"
李兰拉着李光头和宋钢来到了人民饭店,他们很久没有来人民饭店了,上一次是宋凡平带他们来的,宋凡平刚刚挥舞了红旗,正是威风凛凛的时候,他们吃着面条时,饭店里的人都围着他们,那个厨师还给了他们肉汤。现在的饭店里冷冷清清,李兰给他们要了两碗阳春面,她没有给自己要,她舍不得,她说她回家吃剩饭。李光头和宋钢吃着热气蒸腾的面条,他们的鼻涕一次次快流到嘴里了,又一次次吸了回去,他们觉得这次的面汤和上次的一样鲜美。那个曾经见过他们的厨师趁着没人的时候,走过来低头悄悄说了一句: "给你们的是肉汤。"
这天晚上李兰拉着两个孩子的手在街上走了很长时间,天黑以后他们来到了灯光球场。三个人坐在场边的石头上,在月光里看着空空荡荡的球场,李兰回忆着这里曾经有过的明亮灯光,曾经有过的热烈比赛,宋凡平在那场比赛里出尽风头,尤其是那一次技惊四座的扣篮,让全场一下子鸦雀无声,随即又爆发了地震般的轰然惊叫声。李兰嘴角的微笑挂在黑暗里
,她对两个孩子说:
"你们的爸爸死后,世上就没有人会扣篮了。"
宋钢在李光头家里住了两天,第三天清晨,宋钢的爷爷,那个老地主背着一只南瓜来了,他没有跨进家门,低头站在门外,李兰热情地叫着他"爸爸",热情地拉着他的袖子,要把老地主拉进屋里来。老地主脸红了,他摇着头,死活不愿意进屋。李兰没办法,只好搬一只凳子到门外,让老地主在门外坐下来。老地主没有坐下,他还是站在那里,只是把身体伸了进去,将南瓜放到屋子里面,然后他耐心地站在门外,看着宋钢在里面吃完早饭,等宋钢走出来,他拉起了宋钢的手,鞠躬似的对李兰点了点头,拉着宋钢走了。
李光头跑到了门口,难过地看着宋钢走去,宋钢不断地回过头来,难过地看看李光头,宋钢的手举到肩膀的地方向李光头挥动,李光头的手也在肩膀旁挥动起来。
一道有意思的数学题
一个旅行者拿着由7个金环连在一起的金链子去住店,每夜的店钱是1个金环,必须住够7个夜晚,问:怎样对链子进行最少次数的切割,旅行者才能每天早上支付旅店的一环(不能提前预支)?
第一次看到这个题目的时候,通常的做法都应该是直接把2,4,6这三个环切开,就正好把7个环分开了,正确答案应该是3次。突然一想,这题会不会还有其它解法,不可能这么简单啊。我这人比较懒,从小就养成了看答案的坏习惯,一看答案,恍然大悟,答案是这样解答的:
只需要切一次,把3号环切开就可以了。切开3号环后,我们得到了,12,3,4567这样三个串,而付店钱的时候,可以这样给钱:
第一天:给饭店一个环
第二天:给饭店连在一起的1,2号环,饭店老板找回你一个环
第三天:给饭店一个环
第四天:给饭店4,5,6,7连在一起的四个环,同时找回12,3这三个环
第五天:给饭店一个环
第六天:给饭店连在一起的1,2号环,饭店老板找回你一个环
第七天:给饭店一个环
答案就是不一样,与众不同,白里透红啊。
看似普普通通的一道题,蕴含着一个非常重要的解题策略问题。当我们解决一个题目时,应该纵览全局,涉及到题目的任何部分都要考虑到,向这题,我当时就只考虑到了旅行者这方面,忽视了饭店还可以找回零钱这个环节,结果作出了错误的决定。把这个题目弄明白了,睡觉也睡的香了!
lighttpd+php5+mysql+Debian etch
Step 1:安装MySQL5
#apt-get install mysql-server mysql-client
Step 2: 安装lighttpd
#apt-get install lighttpd
安装完成后,打开浏览器查输入http://localhost,看到欢迎页面,则一切正常。
More...Step 3:安装php5
在lighttpd中,php是以fastcgi形式工作的,debian etch源中正好有与之对应的deb包
#apt-get install php5-cgi
Step 4:配置php
#vi /etc/php5/cgi/php.ini
在文末加上
cgi.fix_pathinfo = 1
vi /etc/lighttpd/lighttpd.conf
增加上fastcgi模块:
"mod_fastcgi"
然后在文末加上:
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket"
)))
修改完成后,重启lighttpd:
#/etc/init.d/lightppd restart
Step 5:测试php是否工作。
写个php文件,最常用的就是phpinfo();文件,然后打开,如果正常显示,则工作,
如果不正常显示,请查找原因,慢慢来,别着急,一般是不会出问题的。
Step 6:安装php相关模块
根据实际情况需要,安装php模块,可以使用:
#apt-cache search php5
来查看有哪些模块,我安装了如下模块:
#install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json
因为安装了php5-json模块,重启lighttpd的时候,出现了多次加载php5-json的错误信息,将/etc/php5/cgi/php.ini中的
extension=json.so注释掉就可以了。
安装就这么简单,没啥挑战性,就是一些命令的堆积,
有啥问题发邮件给:cmyf.name@gmail.com,欢迎交流!
LEMP(linux,nginx,mysql,php)安装备忘录
这阵子上网溜达,看见很多高手都说nginx(阴精X,嘿嘿)很好、很强大,于是乎,我没能顶得住诱惑,便装了个玩玩,为了方便再次安装,便小记了下。本文安装的方法仅提供给“玩票”的兄弟姐妹们参考,工业环境请慎重!我这人计算机水平也不高,文中如有不正之处,请指正cmyf DOT name AT gmail DOT com.
零,准备工作
不知谁说过不打无准备之战来着,咱也要先把需要的东西都准备好。LEMP不外乎就是:Linux、nginx[Engine x]、MySQL、PHP。我使用的版本信息如下:
Linux: Debian etch 2.6.18-5/gcc version 4.1.2/GNU Make 3.81/Engine X: nginx-0.5.35MySQL: mysql-5.0.45PHP: php-5.2.5
由于是源码安装,所以在安装的过程中难免会遇到缺少xxx文件啊、xxx库之类的信息,所以我在安装的时候还用到了以下软件:
freetype-2.3.5 libxml2-2.6.30 gd-2.0.35 lighttpd-1.4.19 jpegsrc.v6b mcrypt-2.6.6 pcre-7.2 libiconv-1.11 memcache-2.2.1 libmcrypt-2.5.8 mhash-0.9.9 libpng-1.2.20 libxml2-2.6.30 ncurses-5.6
当然了,由于我的debian linux系统是全新安装的基本系统,所以缺的包还比较多,你得根据实际情况添加,大部分的都能apt-get到,实在get不到,就上网搜一个,装上就欧了。将所有需要的软件我都全部放到了/home/alpha/lemp目录中,方便点!
好了,弹夹已经压好了,喝口茶,上膛,瞄准!
一、安装MySQL
#cd /home/alpha/lemp#tar zxvf mysql-5.0.45.tar.gz#/sbin/groupadd mysql#/sbin/useradd msyql#cd mysql-5.0.45# ./configure --prefix=/opt/webser/mysql/ - -without-debug - -with-unix-socket-path=/tmp/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=utf8,gb2312,gbk --with-pthread –enable-thread-safe-client
详细的configure信息可以参考:
http://dev.mysql.com/doc/refman/5.0/en/configure-options.html
#make && make install
安装mysql是个漫长的过程,需要点点时间,我测试用的机器还凑合着。再有,我所有的软件都是安装在/opt/webser/目录下,你可以根据实际情况选择。
#chmod +w /opt/webser/mysql#chown -R mysql:mysql /opt/webser/mysql#cp support-files/my-medium.cnf /opt/webser/mysql/my.cnf#cd ../#/opt/webser/mysql/bin/mysql_install_db --defaults-file=/opt/webser/mysql/my.cnf --basedir=/opt/webser/mysql/ --datadir=/opt/webser/mysql/data --user=mysql --pid-file=/opt/webser/mysql.pid --skip-locking --port=3306 –socket=/tmp/mysql.sock
关于mysql_install_db的参数,可以参考下面这篇文章:
http://dev.mysql.com/doc/refman/5.0/en/mysql-install-db.html
#/bin/sh /opt/webser/mysql/bin/mysqld_safe --defaults-file=/opt/webser/mysql/my.cnf &
如果能顺利启动,那就ok了,剩下的关于mysql更多的配置,就参考mysql的手册吧。
二、PHP安装(FastCGI)
#tar zxvf php-5.2.5.tar.gz#cd php-5.2.5/#./configure --prefix=/opt/webser/php --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect --with-config-file-path=/opt/webser/php/conf --enable-zend-multibyte --with-mysql=/opt/webser/mysql/ --with-libxml-dir=/usr/local/bin/xml2-config --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-sysvsem --enable-inline-optimization --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif –disable-debug
我在configure的时候由于缺少很多文件,所以遇到很多郁闷问题,在config的时候一定不要忘了—enable-fastcgi,更多的configure参数,请参考:
http://php.net/manual/zh/configure.php
#make && make install#cd ../
接下来为了让php更爽,还要添加点有意思的插件:
memcache这玩意儿还是有点用途的,呵呵,反正测试用装上玩呗!
#tar zxvf memcache-2.2.1.tgz#cd memcache-2.2.1#/opt/webser/php/bin/phpize#./configure –with-php-config=/opt/webser/php/bin/php-config#make && make install#cd ../
gd呢是肯定用的上的!
#cd php-5.2.5/ext/gd/#/usr/local/webserver/php/bin/phpize#./configure - -with-jpeg-dir --with-png-dir --with-zlib-dir --with-ttf --with-freetype-dir –with-php-config=/usr/local/webserver/php/bin/php-config#make#cd ../../../
接下来需要稍微修改以下php.ini文件,查找并替换extension_dir为:
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"
具体的目录得根据你实际情况而定,然后增加以下内容:
extension = "memcache.so"extension = "gd.so"
三,安装fastcgi
看了下网上兄弟们的文章,lighttpd里面的spawn-fcgi可用,那就编译一下 lighttpd-1.4.19,不用安装,然后按照以下方法设置:
#cp spawn-fcgi /opt/webser/php/bin/#chmod +x /opt/webser/php/bin/spawn-fcgi
运行fastcgi:
#/opt/webser/php/bin/spawn-fcgi -a 127.0.0.1 -p 8080 -C 64 -u www -f /opt/webser/php/bin/php-cgi
关于spawn-fcgi的运行参数,可以查看:
http://linux.die.net/man/1/spawn-fcgi
四、安装nginx
#/usr/sbin/groupadd www -g 68#/usr/sbin/useradd -u 68 -g www www#mkdir -p /home/data/www#chmod +w /home/data/www#chown -R www:www /home/data/www
在测试过程中,服务目录是/home/data/www,挺别致的吧,呵呵,
#tar zxvf pcre-7.2.tar.gz#tar zxvf nginx-0.5.35.tar.gz#cd nginx-0.5.35#./configure --user=www --group=www --prefix=/opt/webser/nginx --with-pcre=/home/alpha/nginx-php/pcre-7.2 --with-http_stub_status_module#make && make install
更多的关于nginx的configure参数可以查看:
http://wiki.codemongers.com/NginxChsInstall
五,nginx配置
创建了个保存日志的目录,方便点,呵呵:
#mkdir -p /home/data/logs#chmod +w /home/data/logs#chown -R www:www /home/data/logs
接着咱就来配置配置:
#cp /opt/webser/nginx/conf/nginx.conf /opt/webser/nginx/conf/nginx.conf.BACKUP
我的配置文件如下,
#vi /opt/webser/nginx/conf/nginx.confuser www www;worker_processes 5;error_log /home/data/logs/error.log;events {worker_connections 2048;}http {include conf/mime.types;include conf/fcgi.conf;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] $request ''"$status" $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /home/data/logs/access.log main;sendfile on;keepalive_timeout 65;server {listen 80;server_name example.com;root /home/data/www;location / {index index.html index.htm index.php;}location ~ \.php$ {fastcgi_pass 127.0.0.1:8080;}}}
接下来需要在/opt/webser/nginx/conf/中创建一个fcgi.conf文件,
#vi /opt/webser/nginx/conf/fcgi.conf
内容如下:
#fastcgi.conffastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE nginx;fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METHOD $request_method;fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_length;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_param REQUEST_URI $request_uri;fastcgi_param DOCUMENT_URI $document_uri;fastcgi_param DOCUMENT_ROOT $document_root;fastcgi_param SERVER_PROTOCOL $server_protocol;fastcgi_param REMOTE_ADDR $remote_addr;fastcgi_param REMOTE_PORT $remote_port;fastcgi_param SERVER_ADDR $server_addr;fastcgi_param SERVER_PORT $server_port;fastcgi_param SERVER_NAME $server_name;# PHP only, required if PHP was built with --enable-force-cgi-redirectfastcgi_param REDIRECT_STATUS 200;
我这就是简单配置,更多的关于nginx的配置信息请参考:
http://wiki.codemongers.com/NginxConfiguration
六、启动并测试nginx
#/opt/webser/nginx/sbin/nginx -c /opt/webser/nginx/conf/nginx.conf
写个phpinfo()文件测试下,能正常显示,那就ok了。
七、参考资料
我已经在文章中注明了参考过的资料了,嘿嘿!
八、后记
LEMP到此就安装完成了,nginx是很强大的,要想让它更稳定、高效的为您服务,还是多看看它的官方文档吧。欢迎指正:cmyf DOT name AT gmail DOT com。
iceweasel安装google工具栏插件
要想正常安装,还得修改以下下面的内容:
在地址栏输入:about:config
找到general.useragent.extra.firefox相关内容,
将Iceweasel字样改为Firefox后,就可以正常安装了,
当然了,你也可以将xpi文件下载后,直接拖到iceweasel中。
w32codecs在debian etch中安装
# vi /etc/apt/sources.list
添加:deb http://www.debian-multimedia.org etch main
step 2:
# gpg --keyserver pgp.mit.edu --recv-keys 1F41B907# gpg --armor --export 1F41B907 > marillat.asc# apt-key add marillat.asc
step 3:
#apt-get update
step 4:
#apt-get install w32codecs
Debian etch在Dell 710m上使用无线网络
1,如果你没有安装wireless-tools,请先安装之:
#apt-get install wireless-tools
2,针对您使用的内核,下载 Intel® PRO/Wireless 2200BG Driver Firmware,
我目前使用的内核是2.6.18,所以下载firmware v3.0,地址如下:
http://ipw2200.sourceforge.net/firmware.php?fid=7
3,将下载的文件解压至:/lib/firmware
4,重新加载ipw2200模块:
#rmmod ipw2200
#modprobe ipw2200
5,安装完成后,就可以使用wireless-tools来配置您的无线网络了。
有问题请邮件交流:cmyf.name@gmail.com
在Debian(Etch)中安装Plone
Step 1: 安装Plone
sudo apt-get install plone-site
安装过程中会提示您管理所需要的用户名和密码,以及提供服务的端口,按照自己的需要设定即可!
Step 2: 启动Zope/Plone
sudo /etc/init.d/zope start
Step 3: 新建一个Plone Site
打开http://localhost:PORT/manage,选择Plone Site,然后Add,为您的Plone Site设定个ID就行了。
Step 4: 测试浏览
打开http://localhost:PORT/YOUR_PLONE_SITE_NAME
安装就这么简单了,当然了,要将Plone弄明白,还是需要一番努力的!
php随机显示字符串
可参看http://noroot.info的首页显示,
代码如下:
原理很简单,先用file()函数读取文件tips里面的内容,然后用count统计文件中的数目,以便产生随机之用,接着用mt_rand()函数在产生随机,至于为什么用mt_rand()而不用rand(),网上有很多高手评说过了,我就不在这里扯蛋了。最后用 chop()函数来定制需要显示的内容就ok了,呵呵
使用915resolution解决宽屏的问题
俺的Dell 710m是宽屏,安装的是debian etch,而解决宽屏的问题使用915resolution这个包是最有效、也是最简单的办法!
具体步骤很简单:
Step 1:
#apt-get install 915resolution
Step 2:

Intel 800/900 Series VBIOS Hack : version 0.5.2
Chipset: 855GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $29f
Mode Table Entries: 39
Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1920x1440, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1920x1440, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel
Mode 7c : 1280x800, 8 bits/pixel
Mode 7d : 1280x800, 16 bits/pixel
Mode 7e : 1280x800, 32 bits/pixel
Step 3:
Step 4:
#shutdown -r now
就这么简单!
BTW:
915resolution介绍:
915resolution目前支持845G,855G,865G,915G,915GM,945G芯片组。
再谈如何学习Linux
如何学习Linux,是个老生常谈的问题,也是各大社区讨论频率较高的问题,以前也有好多朋友发邮件和我一起讨论,我都是草草的回复说找Google和Baidu。近日,心血来潮,突然想把这几年使用Linux的经验总结一下。
一,为什么学Linux?哪些人需要学Linux?
我个人接触计算机的时间很晚,99年才买的第一台计算机,2000的某一天我知道了RedHat这个东西,还知道了她是Linux的一个发行版。当时我正上高中,学习也比较紧张,所以安装上了RedHat以后呢,也没怎么认真学习,大部分时间还是玩Windows。真正开始学习Linux应该是高考后的那个暑假,2002年6月。
我也不知道如何来回答为什么要学Linux这个问题,反正我就感觉Linux很吸引我。刚开始觉得敲打几个命令就能完成所需要的事很牛B,向黑客(呵呵,那时还真是年少无知),再接着知道shell编程以后,就发现Linux可以帮我完成很多繁杂的操作,我当时最满意的作品就是写了一个Bash的脚本,用来检查HTML语言是否规范,为此兴奋了好几天。Linux可以在相当程度上满足一个懒人的需要,这可能就是我选择Linux的根本原因吧,至于其它的,我还真没什么认真考虑,学Linux可以找到好工作、更有前途这些好处我就不在敖述了,网上很多,至于是真是假,自己看着办。
哪些人需要学Linux?我认为任何想让计算机为自己干活的人,都可以学Linux。KISS(Keep It Simple,Stupid!),在Linux就有很好的体现。我是个懒人,以前在windows里面很多冗繁的操作,我都想方设法的在Linux里面自动让计算机来实现(或许windows也能,但是我不会),如果你想让计算机更体贴的为你服务,那就学习Linux吧!
二、选择哪个发行版学习?
这也是个困扰初学者的问题,当初我也是,我最高记录是一天换了三个发行版。想当初,什么 Redhat,SuSE,Fedora,Mandrake,Debian,红旗,中标等等,能装的都装过。最后我算是明白了,邓爷爷说的没错阿"不管黑猫白猫,能抓耗子的就是好猫",所以说大家就不要太刻意的去追求哪个发行版了,能用就行,至于好不好用,能不能让其发挥最大的功能,那不是发行版的问题,而是你的问题。BTW,我现在使用的是Debian,已经使用快三年了!

三、如何学习Linux?
至于具体应该如何系统的学习Linux,我也不能发表什么权威的看法,完全都是自己的经验。
1、基础学习。
Linux发行版都是在Linux Kernel的基础上加以定制的,可以这样说,不管用哪个发行版的Linux,其基本操作都是想通的。我个人觉得,Linux基础主要指以下几个方面:
a、学习Linux前,建议了解一下操作系统、计算机硬件结构、网络、等基础知识。最好多认几个英文单词,呵呵。
b、Linux的安装与定制。如何将Linux安装在自己的机器上,且将Linux定制成最适合自己机器的操作系统。
c、Linux常用命令,诸如:cd,ls,cat,ps等等这类基础命令。
d、Linux软件的安装。你可以采用rpm、deb等各种形式的安装方式,但我个人比较建议基于源代码的安装,这样更能学到东西。
e、熟悉X窗口,现在比较常用的是GNOME和KDE,选一个自己比较喜欢的,熟悉她。
f、熟悉Linux的文件结构,了解每个目录其主要包含内容及作用。
g、基础Shell编程,用Shell编程来完成最基本操作,诸如:系统备份等。
h、熟悉vi、emacs等常用的编辑器,当然,你也可以选择gedit等X环境的编辑器。
2、进阶学习
当你掌握了一定的基础以后,根据自己的需要,进行深入的学习。再次说明,本文完全都是我长期使用Linux的经验总结,不代表任何组织负责,不承担任何责任,呵呵。
a、使用Linux架设自己的服务器,现在比较流行的是LAMP(Linux,Apache,MySQL,PHP/Python)。
b、深入理解shell编程,学习sed/awk等,学习正则表达式的写法。个人比较强调,正则表达式在处理文本的时候相当有用,一定要学好哦。
c、学习各类常用服务器的搭建。如:ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、PostgreSQL/Oracle、Bind等。当然,你可以选择性根据自己实际情况来学习。
d、如果条件允许,可以学一点web脚本编程语言,如:perl,php等。
e、如果对网络比较喜欢,可以深入的学习TCP/IP协议。
f、如果想再企业级环境中使用,可以深入了解多用户管理、文件系统、日志分析、备份与数据修复、系统补丁、内核升级、网络安全等课题。人不是全能的,可以选择自己比较喜欢的课题来研究。
g、如果对程序设计比较感兴趣,可以学习C或Python,个人感觉Python作为入门编程语言比较适合,因为她不难,至少比C简单多了。
3、高级学习
当对Linux有了充分的认识后,那就根据自己的条件,来更有选择性、针对性的学习了。我个人在Linux的认识上,还在这个阶段徘徊不前,所以就胡说八道一下,如有不正之处,还请各位多多指教:
a、程序设计类:
先要理解Linux的工作原理,熟悉内核的各模块功能,熟练使用C语言。所以说,要想学好Linux,C语言是相当重要的。现在大学普遍使用C语言的课本都是老谭同志的那本,还行,不过我个人建议看看《The C Programming Language》这本书对自己是相当有好处的。不过看懂这俩本书也不能马上应用到实际工作中来,因为这两本都是基础中的基础,理论中的理论,要想实际运用C语言,还需要自己多读别人的代码,多写代码,不要怕麻烦,我刚接触C语言也很郁闷,总是不能理解,尤其是指针啊、数组阿之类的,搞的我莫名其妙的。
要想学好程序设计,数学是基础,我上大学那阵,开了高数、概率论、线性代书、离散这四门必修课。当时也没怎么认真学,觉得考试能过就好,现在后悔了,闲暇之余都不敢看小说了,要把以前的数学书拿出来复习了,郁闷死我了。数据结构和算法是一个程序的灵魂,所以要想在程序设计上有所建树的,一定要再这两方面深入研究。不管用什么语言来实现,都是需要一个好的算法和数据结构。
当然了,Linux内的程序设计不单单是C语言,你还可以选择自己喜欢的、熟悉的语言来开发,如:C++、Python、JAVA等等,太多了。就程序设计而言,选择什么语言并不重要,重要的是解决问题的方法。基础很重要,什么操作系统原理阿、计算机结构阿、数字电路阿,能多多少少了解一点,总是不会错的。
b、系统管理类:
如果你的目标不是程序员,而是一个系统管理员(就像我),那个人建议主要注意以下几个方面:
1、一定要学好Shell编程,当你熟练以后,你会发现,用shell编程,解决问题真的很简单。
2、对自己使用的发行版,一定要做深入的了解,哪些文件控制哪些,等等。
3、对网络协议、网络安全、网络设计,要深入学习研究。
4、能在第一时间内获悉你正在使用环境中的软件bug,内核漏洞,并且根据实际情况,决定采用什么方式补救,某些时候,不一定升级就有效。
5、有兴趣的可以研究研究Linux集群,用集群来解决实际环境中的一些实际问题,如:热备份、负载均衡等。
6、对系统备份、数据恢复,一定要有深刻的认识,我以前就遇到过数据丢失的情况,后悔莫及。
7、了解你实际工作环境中计算机的硬件体系。
8、理解你的计算机所提供的各种服务的原理。如,vsftp、ssh、apache等工作原理。
四、一些我个人感觉比较好的Linux书籍
W.Richard.Stevens先生的那六本书(书名俺就不打了,磨损键盘,反正大家都明白)。并再次缅怀W.Richard.Stevens先生,没有您,就没有计算机的今天。
《LINUX系统管理技术手册》 EVI NEMETH,GARTH SNYDER,TRENT R.HEIN写的,不怎么出名,但个人感觉很实用,绿皮的。
《鸟哥的Linux私房菜》 台湾鸟哥写的,他网站上有电子版,对于入门者来说,还不错。
《LINUX DEVICE DRIVERS》这本书就不说了吧,经典中的经典,其实我买了,看了,但是感觉没用,呵呵,我不做开发的。
《THE ART OF UNIX PROGRAMMING》Eric Raymond先生的经典作品,多看点书,总是没错的。
《UNIX SHELLS BY EXAMPLE》 Shell实例编程教学,还不错,有很多有用的东西,并且介绍了好多版本的shell,不单是bash。
《莱昂氏UNIX源代码分析》经典书,可以做收藏之用,但是看了总比没看的好
暂时就列这么多吧,其实呢,看书这个东西,不在乎多少,而在于理解掌握多少,自己明白的,才是自己的,自己不明白的,永远都是书本的、别人的。我以前有段时间,下载了好多电子书,结果都没看,浪费空间了,呵呵。不过多看点书,总是没有坏处的。
五、Linux相关的一些资源
我看的最多的是这两个网站
http://www.chinaunix.net
http://slashdot.org
其次就是还订阅了N多邮件列表,反正没事就多学点东西,学无止境麻,欢迎大家没事就来搔扰我:cmyf.nameATgmail.com ,呵呵
--
耐得住寂寞,顶得住诱惑!
MediaWiki基本配置与管理
说明:MediaWiki是很强大的,本文也就是MediaWiki最最最基础,也是最最最实用的部分的使用,具体关于MediaWiki的详细情况,请通过各类搜索引擎查询!本文旨在抛砖引玉!
一、什么是MediaWiki?为什么选择MediaWiki?
MediaWiki是全球著名的wiki程序,原作者是德国人Magnus Manske,适用于PHP+MySQL环境。从2002年2月25起,作为维基百科全书(http://en.wikipedia.org)的系统软件,并有数十万计的网站使用MediaWiki。MediaWiki可用于个人知识管理、团队知识管理、协同创作、百科全书等多种领域, MediaWiki是建站的首选程序。
MediaWiki是自由软件,有着良好的多语言支持、弹性超强的扩展功能、活跃的开发社区、丰富的文档支持、经受过重量级运用(维基百科全书)的考验等一系列优势,是您架站最好的选择!

二、安装MediaWiki
MediaWiki的安装很简单,以下三个步骤:
1、服务器运行环境
MediaWiki运行于PHP+MySQL环境,操作系统没有限制,推荐使用Linux。目前我的服务器运行环境是:Ubuntu Server,Apache2,PHP5,MySQL5。
2、MediaWiki下载
您可以到MediaWiki官方网站(http://www.mediawiki.org)下载,个人推荐到天下维基(www.allwiki.com)下载完全汉化版。我使用的是mediawiki 1.9.3 完全汉化版。
3、安装MediaWiki
安装很简单,将解压后的MediaWiki程序放置到apache服务目录中,然后将修改目录config的权限为777(a+w)。
然后呢,根据提示输入您的实际情况中数据库的配置信息,就是些什么数据库名阿,数据库用户名阿,等等,都很简单。安装成功后,您需要将LocalSettings.php拷贝到您的MediaWiki根目录下,这就是MediaWiki的配置文件。
最后,基于安全因素,您需要将config的权限改回原来的。这样,MediaWiki就在您的服务器上安家了。
三、MediaWiki基本配置
终于到了本文的高潮部分了。
1、界面设置
在MediaWiki中大部分的界面信息都存放在Special:Allmessages页面里面,包括界面的文字、链接、气泡提示、热键等等,杂七杂八的,非常多,你可以在直接输入Special:Allmessages来根据自己实际情况修改配置。至于具体的都是些什么内容,本文就不在多说了,您可以通过google找到更具体的,呵呵!
2、上传文件设定
修改LocalSettings,$wgEnableUploads就是控制上传的参数,true允许,false不允许,默认应该是允许的。您还需要将 images目录加上可写入的权限,要不然用户无法上传。通过$wgFileExtensions = array('','','')设定允许上传的文件类型,$wgFileBlacklist = array('','','')设定不允许上传的文件类型。
3、修改为/wiki/式网址。
修改LocalSettings.php
$wgArticlePath = "/wiki/$1";
再修改httpd.conf(apache配置文件)
Alias /wiki /filesystem/path/to/you/site/index.php
Alias /index.php /filesystem/path/to/you/site/index.php
备注:网上还有很多修改为/wiki/式网址的方法,我都测试过,发现除了使用apache别名功能外,还就就是利用.htaccess编写rewrite rule了。具体的,大家可以google下。
4、提示信息修改
比较常用的提示信息有以下几个:
MediaWiki:Mainpage 首页
MediaWiki:pagetitle (浏览器上方)网页标题
MediaWiki:Privacy (页脚)隐私政策
MediaWiki:Aboutpage (页脚)关于本站
MediaWiki:Disclaimers (页脚)免责申明
MediaWiki:Sidebar (测栏)导航栏 格式:URL|标题
5、LOGO修改
最简单的,直接替换/skins/common/images/wiki.png文件,当然,你也可以通过设定$wgLogo来设定logo文件位置。
6、使用者权限修改
$wgGroupPermissions['*' ]['createaccount'] = false;
$wgGroupPermissions['*' ]['read'] = true;
$wgGroupPermissions['*' ]['edit'] = false;
$wgGroupPermissions['*' ]['createpage'] = false;
$wgGroupPermissions['*' ]['createtalk'] = true;
由于时间关系,暂时就写这么多了,MediaWiki是功能超强的,我会在以后写一些更有针对性的关于MediaWiki的文章。
大家可以参考以下链接获取更多的关于MediaWiki的信息:
http://wiki.goodgoodgood.cn
http://www.mediawiki.org
http://www.allwiki.com
MediaWiki中添加Tag Cloud
#Title:MediaWiki中添加Tag Cloud
#Time:2007-10-01
#Author:捕网者@http://logs.goodgoodgood.cn
Tag Cloud在很多网站中均有使用,意外中发现了这款专门为MediaWiki使用的Tag Cloud。
以下是相关的安装及使用步骤:
一、安装
1、下载Tag Cloud For MediaWiki:
http://orangedino.org/index.php?name=Downloads&req=viewdownload&cid=1
根据自己实际情况,下载支持您的MediaWiki版本的Tag Cloud。我使用的是0.9.1的。
2、上传tag_cloud.php文件到extension目录。
3、在LoadSettings.php中调用Tag Cloud:
require_once("extensions/tag_cloud.php");
4、设置您使用Tag Cloud的页面:
Tag Cloud默认在首页调用,正符合我的条件,所以我就没有修改。如果您要在其它页面调用的话,请修改tag_cloud.php文件中invalidateCache()部分。

二、使用
1,最简单的使用
直接在页面中使用<tagcloud></tagcloud>调用。
2,自定义参数
min_count:定义至少有多少条目才能够被显示的分类。默认为:0
min_size:标签字体最小值。默认:77
increase_factor:字体最大变量。
border_color:边框颜色
color:字体颜色
background_color:背景颜色
exclude:不现实您这设定的分类。只有在0.9.1版才支持
例子:
<tagcloud>
border_color=#000000
color=#FFFFFF
min_size=100
increase_factor=200
exclude=分类一,分类二,分类三
</tagcloud>
具体的参数设置可以借鉴这些Demo:http://orangedino.org/demo/index.php?title=Tag_cloud_demo
三,其它修改:
在实际使用过程中,可以根据自己的实际情况修改:
1、定义输出框样式:
"<div style='width:100%;text-align:center;background-color:#ffffff" . $background_color_input . ";border:none" . $border_color_input . ";padding-left:1px;padding-right:1px;'>";
2、定义输出字体样式:
"<a style='color:" . $color_input . ";margin-left:1px;margin-right:1px;font-weight:;font-size:" . $textSize . "%;' href=" . $wgScript . "?title=Category:" . $tags[$i][0] . ">" . $tags[$i][0] . "</a> ";
后记:
Tag Cloud这个插件短小实用,代码不多,大家一看就明白了,也可以根据自己实际情况来定制,很方便使用。
演示站点:http://wiki.goodgoodgood.cn
终于搞定了Latex中文UTF-8
郁闷了老半天,装了N多tex套件,网上的搜索了N多别的兄弟姐妹们的安装笔记,都没搞好,都差点放弃了。终于皇天不负有心人阿,俺终于搞定了,而且自认为是最简单的,哈哈!
安装步骤如下:
环境:
Debian etch.
#apt-get install tetex-bin tetex-base tetex-extra cjk-latex dvipdfm-cjk-cmap
#apt-get install latex-cjk-chinese-arphic-gbsn00lp
测试:
\documentclass[12pt,a4paper]{article}
\usepackage{CJKutf8}
\usepackage[T1]{fontenc}
\usepackage[unicode]{hyperref}
\begin{CJK*}{UTF8}{gbsn}
\begin{document}
\author{岳飞}
\title{满江红}
\maketitle
怒发冲冠,凭阑处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。 靖康耻,犹未雪;臣子恨,何时灭。驾长车踏破贺兰山缺。壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河。朝天阙。
\end{CJK*}
\end{document}
随便建立个文件,内容同上,保存之,然后运行:
$pdflatex FileName.tex
如果正常编译,显示中文的PDF文档,那就恭喜您了。如果不能正常编译,那说明您道行还不够,找Google吧,呵呵。