天气是 ‘阴’ 的文章

小内存VPS之Ubuntu配置LNmP

2012.04.02 | 天气: | 标签: , , , , ,

前言

作为Ubuntu fans,连VPS都是装Ubuntu的,但是因为内存太小(256M),传说中的LAMP(Linux+Apache+Mysql+PHP),因为内存使用率很容易就100%,只好用LNmP(Linux+Nginx+sqlite+PHP-fastcgi)。而网上的教程基本针对CentOS,就连用了Ubuntu的也是用LNMP安装包——从源代码开始安装!!而且把程序都装到/usr/local下,这样很不符合Ubuntu的包管理精神,而网上的教程基本上是一篇(都是互相抄袭嘛)。因此我想通过本文告诉大家,小内存下的Ubuntu不用编译也可以很好地使用,以下是集合我的实际配置经历和网上文章整理
纯粹在apt-get下管理软件,并配置出适合小内存VPS运行的服务器套装。

别看广告,看疗效

有图有真相


去掉我管理时连接ssh和bash(多了2M左右),内存最大占用只有60M,包括sendmail这种内存大头。当然现在VPS上才跑着一个Typecho(博客程序)和一个大波(推忒API),就算按一个站点要15M左右(独立php-cgi+nginx进程),多出来的200M,应该还能跑10个左右这样的站点哈,特别对是流量比较小的个人博客,简直是太合适了。

配置Ubuntu

首先在VPS面板安装好Ubuntu 10.04后(是有点老,不过文中命令条目可以跨LTS版本执行),删除apache2和mysql-serverapt-get remove apache2 mysql-server-core bind9接下来是安装Nginx php-cgi
apt-get install php5-cgi nginx注:网上说的fastcgi其实和这个是一样的,我个人理解是Nginx把得到的参数通过CGI接口转接给PHP进行处理而已。而Spawn-FCGI就不用下载了,网上那些用了Nginx还去下载LightHttpd的文章真是不知道怎么说了。为什么?请看什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?

配置PHP-CGI启动项

添加php-cgi作为常驻内存项目,减少服务器开支
wget http://mengzhuo.org/blog/wp-content/uploads/2012/04/php-fastcgi.txt && chmod +x php-fastcgi.txt && mv php-fastcgi.txt /etc/init.d/php-cgi或者手动复制php-fastcgi到/etc/init.d/下面
可能需要编辑文件里面的两项
BIND=/tmp/php.socket #绑定UNIX通道作为CGI传递的路径
PHP_FCGI_CHILDREN=2 #控制进程数(越多程序速度越快,当然内存消耗越大)
修改好后,再运行update-rc.d php-cgi defaults && service php-cgi start,把这个启动项作为默认启动项,并启动。

配置Nginx

具体网站程序配置,最好网上找,我这里要说的是upstream和event的设定
/etc/nginx/nginx.conf下面要添加

upstream php {
server unix:/tmp/php.socket;
}
events {
worker_connections 1024;
use epoll;
}

然后再具体的网站程序里要添加:
location ~ \.php {
#你的程序配置
fastcgi_pass php;
}

添加好以后用service nginx reload重载即可。
附上我的Typecho的配置文件:

location ~* ^.+\.php(\/.*)*$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php;
}
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}

结尾啦

这样就基本差不多了,重启或者是其他关掉server之后,内存是不是省了很多,又不需要编译这么长的时间呢。

如何从源代码自动制作Deb规则&推送至Launchpad

2012.02.29 | 天气: | 标签: , ,

本文环境

OS:Ubuntu 11.10
已安装:build-essential、dh-make、dput等必要的库和软件
对象:不会却又想打Debian包的小白

本文目标

  1. 没有debian规则情况下,大部分自动化地创建debian规则
  2. 文件符合LaunchPad.net标准,上传至PPA

准备工作

  1. 去申请launchpad.net帐号
  2. 创建个人Open PGP密钥
  3. launchpad帐号加入Open PGP密钥
  4. 在LaunchPad.net上建立个人PPA

创建Debian规则

Linux的世界是源代码构成的,时时刻刻会多出很多新的,好玩的软件,但这些软件的作者并没有时间去写debian规则,而各位又想用deb包来安装的话就没办法了。跳过“又臭又长”的Debian打包指南,其实我们只需要一个软件就够了——dh_make。
这个软件会自动地根据makefile写出Debian规则来,执行一下就好了,够简单吧。

下面就用没有debian化的ibus-gjs来做例子:
git clone git@github.com:mengzhuo/ibus-gjs.git ibus-gjs-1 && cd ibus-gjs-1 && mv debian debian.backup
你会发现这时,ibus-gjs-1里面没有debian规则(只剩个备份文件夹啦),还有就是在路径底下直接用dh_make是不行的,因为我们的作者用的是autogen.sh,所以需要用以下命令来做出makefile
./autogen.sh --prefix=/usr && ./configure
成功后(没有任何依赖不足或错误)执行
dh_make -e "mengzhuo1203@gmail.com" -n -s
当然,你可以把email换成你自己的,具体参数是什么意思请问man哦,这时屏幕上应该出现:

图片里大意是叫你去修改一下debian规则,毕竟很多地方还是要人来做的嘛~一般改debian/control和删除一些不需要的*.ex脚本文件,具体怎么改就要看Debian的文档啦,不过本例的最后成品可以参考debian.backup文件夹里的文件。

创建、测试Deb包

上面改好之后,在ibus-gjs-1底下执行dh_make --createorig -s,来创建debuild所需的orig文件,放心按回车吧,那个提示是吓唬你的,因为你已经创建了debian规则,所以它会略过的。
现在,你已经可以自己创建一个deb包了,下面的命令会创建一个deb包,并清除编译产生的缓存。
debuild -b && debuild clean
然后你会发现下面的错误:
这是因为你还没指定你的密钥,如果你不需要上传到LaunchPad的话就可以忽视它啦。现在,返回上层,你就会发现你打好的DEB包啦。

源码上传

就3步:

  1. 获得Open PGP ID,例如我的ID是A0771E56,可以用下面的代码参看
    gpg --list-keys
    我的PGP

    pub 2048R/A0771E56 2011-11-21
    uid Meng Zhuo (For Email and EncryptedFile)
    sub 2048R/DF9E11A0 2011-11-21

  2. 在源代码目录执行
    debuild -S -sa -k[你的ID]
    例如:
    debuild -S -sa -kA0771E56
    来构建launchpad承认的源代码格式
  3. 返回上层目录,执行
    dput ppa:[你的PPA地址] source.changes结尾的文件
  4. 例如:
    dput ppa:mengzhuo1203/ibus-gjs ibus-gjs_1_source.changes
    好啦,现在就坐等LaunchPad给你排队编译这个东西了,大概1-2小时不等

总结

我们学了简单地从源代码制作debian规则和上传代码到LaunchPad,很简单吧,我可是摸索了……3天(业余时间),遥想当年手动写规则,简直是弱爆了。
当然,非常欢迎指正错误,或者是说出更好的方法哈~

“高帅富”现象及其进化学意义

2012.02.18 | 天气: | 标签:

前言

高帅富

网络词汇,形容男人在财富,相貌,身材上的完美无缺 1

男人身为雄性动物一般会对“高帅富”产生下述心理——参见《男人嫉妒男人的强势,女人嫉妒女人的美貌》。但是,由于目前人类的生产力水平不足以维持共产主义,基因技术还没有达到更改人类缺陷的程度,这种情况下,人与人之间必然有不等与阶级,因为人是构成社会的基础,推知,社会也如此。
上述嫉妒心态,在目前中国社会所引起的负面社会现象有:

而且对于个人

嫉妒都会消耗人们宝贵的心理资源……能量逐渐消耗,最终殚精竭虑 3

尽管对个人和社会有相当大的危害,但在进化学上是有重要、积极的意义。生物本能之一就是繁衍出更适应环境的后代——尽管很难听——但对目前社会而言,“高帅富”正是适应当前环境的一群人。从我们的人科近亲——黑猩猩可知(去除人类社会对本能的影响),雄性制造后代的本能是多多益善,以此增加后代存活率,所以参考性不强。而由于雌性负责生育后代,因此她们的选择则是进化方向的指南针。

高、帅


因为成年身高由先天基因和后天环境因素决定 4,而我们的祖先——北京人

生活在距今50万年前……身材粗短,男性高约156厘米,女性约144厘米。

根据2008年的数据统计,中国人的平均身高:
男性高172.6厘米,女性161.6 厘米 4
可见50万年间,身高的进化的方向是更高——因为同等重量下,更高体积更大,而体型越大,体积与表面积的比值越大,散热越少。冰河期一直伴随着漫长的人类进化过程,所以更高的人更容易存活下来,这是更适应寒冷的基因,使后代更容易存活;由于身高还有后天因素影响,因此一个人更高,意味着可能的良好的生活环境——为后代制造更容易生存的环境。可能你会奇怪,人类有衣服了,为什么还在追求这个抗寒能力呢,想想百万年的进化历程的累积,岂是几千年能改变的。

同样的,帅气,虽然“三停五眼”这类的说法很模糊,但是可以肯定的是,排布正确的脸至少意味着控制面部的基因没有异常。而且脸还有显示此人的基因特征的作用,为培养后代的双方提供了基因参照。
通常被认为帅的男性面庞还有高额头的影子,意味着脑容量高,虽然对现代人来说,智力水平和脑容量大小没关系,但是,在人类进化过程中的积累还是遗留了下来。
再者,皮肤,男性的皮肤是由体内的雄性激素,经由皮肤内的特殊结构转化为雌性激素来控制的,因此皮肤的好坏显示了雄性激素的分泌量的多少。同时,皮肤也显示了此人的生活条件,比如,伤疤——子女可能有被伤害的危险等等。

富很特殊,和进化学关系并不大。
而人类的有钱人,就像下面这只雄企鹅在其他雌性眼中就是理想的对象
From Wikipedia
只不过,人类是用金钱来衡量罢了。“钱”更多,意味着可能,后代会有更好的生活环境。至少企鹅的世界里是不会批评那些拜“石头”女的吧。而社会公不公平,自然有后人评判。凭良心说,幸好当前社会有此评判标准,使得后天努力以繁衍后代成为了可能,先天不足要改变是几乎不可能。当然,如果想用强制手段杀死其他人遏制其发展,那可是赤裸裸的嫉妒和反人类罪。

总结

综上,女性选择更高和更帅的男性是种本能;
而男性在一夫一妻的约束下,选择更漂亮的女性作为伴侣属于无奈。
敌视“高、帅”,是人类社会与人类基因需求矛盾造成的——毕竟你总不能学狮子搞死对手吧。所以各位男性同胞要是“高帅”不足,又想继续发扬自己的基因的话,可就要好好努力赚钱啦。

参考

  1. http://baike.baidu.com/view/5999210.html

  2. 马诺——《非诚勿扰》
  3. http://www.guokr.com/article/70219/

  4. http://zh.wikipedia.org/wiki/%E5%8C%97%E4%BA%AC%E4%BA%BA

    P.S.这东西压在草稿里N年了,现在不想烂在里面就发出来了……