Dec 282009
 

新搞了个VPS,打算把Blog以及全套行头迁移过来。

以前的那套图省事,用了CentOS5 Kloxo AllinOne BOX。基本上依靠这个CP搞定了全套,主要是人懒不想折腾而已。这次换了个新的VPS提供商,心血来潮想折腾Debian。所以把过程记录下来,避免以后不折腾了却忘记自己当初怎么搭。

总体思路还是采取懒汉办法,有官方源的从官方源安装,没官方源找第三方社区源,再没有的话自己做deb,无论如何,避免从源代码直接编译。

首先把最简单的MySQL装上,用官方源,一句话搞定:

apt-get install mysql-server

MySQL配置文件稍后再搞,对于小Blog来说MySQL的优化意义不大。

其次是nginx,说实话这东西不熟,不过貌似最近挺流行,Debian Lenny也将其收进官方源了,那就简单apt之

apt-get install nginx

简单netstat看一下发现80已经在监听了,访问http://<IP>发现出现欢迎页“Welcome to nginx!”,接下来就是怎么让PHP在nginx上跑起来。

很没技术含量不是,很不幸后面的也没啥技术含量。一破Blog日IP不过300折腾个什么劲啊,不就是一个玩儿么。

PHP稍微麻烦点,因为Nginx没有像Apache那样的SAPI调用PHP的方式,而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程,结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理,这东西的灵活性比spawn-fcgi还要高不少,但代价是要往PHP源代码里打Patch才能用,也就意味着–要重新编译整个PHP。

简单权衡了一下,我觉得我还是想用php-fpm,但是又想偷懒不编译源代码,于是就求助于第三方二进制源了。随便搜了一下发现还真有正合适的– http://www.dotdeb.org/,这个社区致力于维护Debian下的LAMP类软件的非官方二进制包,恰好它们近期重做了PHP,使用了PHP5.3.1版本,并集成入了Suhosin安全补丁。最让人舒服的是吧php-fpm做成了一个php5-fpm的安装包,并给其加了SysV类的启动脚本,这样PHP的FastCGI方式即可以有自己单独的conf文件,又有单独的init.d控制脚本,可谓完美。

无废话说干就干。

修改/etc/apt/source.list,加入dotdeb的源设置:

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

然后apt之:

apt-get update
apt-get install php5-cgi php5-fpm

这样PHP就算完事了,简单验证一下,运行如下命令,观察phpinfo()输出是否正常:

php-cgi –i

再保险点看一下PHP的FastCGI进程有没有跑起来,ps aux|grep php,应该能看到有进程为”/usr/bin/php5-fpm –fpm-config /etc/php5/fpm/php5-fpm.conf”在跑。

剩下的事就是搞定nginx的配置文件把站点建好,并让其能调用后台的PHP。这个dotdeb社区源做的php5-fpm好心到都提供了一个nginx的example配置文件,放在/etc/php5/fpm/nginx-site-conf.sample,改改拿来用就好了。

我是将其复制到/etc/nginx/sites-enabled/opslife.com.conf,然后简单修改几个参数,改好的配置文件是这样:

#
# nginx-site-conf.sample:
# Php Site configuration for nginx webserver
#
# 1. set server root /path/to/your/website;
# 2. Rename this file. Copy it to /etc/nginx/sites-available, /etc/nginx/sites-enabled
#    or otherwise ensure that this file is included by the nginx.conf
# 3. Restart nginx webserver, and php-fpm service.
#

server {

        root  /home/dawnh/opslife.com;

        server_name     opslife.com www.opslife.com d9.opslife.com;
        listen          80;

        access_log  /var/log/nginx/opslife.com.access.log;

        location / {
                index  index.html index.htm index.php;
        }

        #error_page  404  /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /var/www/nginx-default;
        }

        # pass the *.php scripts to php-fpm listening on tcp port 9000
        #
        location ~ \.php$ {

                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;

                include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SERVER_NAME $http_host;
        fastcgi_ignore_client_abort on;
        }

}

这样站点配置就算是完成了,/etc/init.d/nginx restart重启后,新站点应该就会跑起来了,使用域名opslife.com、www.opslife.com、 d9.opslife.com都应该访问到新建立的站点。

最后再验证一下,扔一个info.php放到/home/dawnh/opslife.com,内容就一句:

<?php phpinfo();?>

由于主域名还没指过来,先用子域名访问测试,直接访问http://d9.opslife.com/info.php,看到返回正确的phpinfo信息。到此最后一步也算顺利完成。

 

剩下就是把wordpress的东西从老的VPS迁移过来了,依旧是没什么技术含量。有空再记录。

Mar 152009
 

安装这一套的目的是为了看看在VPS这种低内存配置的环境下Nginx跑Wordpress的表现,至于为什么选这么一套搭配的原因就不废话了。

为了避免复杂度就没有使用源代码方式安装,用源代码确实是能安装到最新的版本,但简单看了一下各个Changelog,基本上用发行版自带的二进制包也都没什么问题,还是一切从简吧。

目前这个VPS跑得是Fedora8,因为基本上Host provider就只有这么老的货色了。

首先按照惯例更新一下二进制包管理器数据库:

yum update

然后是安装Nginx,PHP,MySQL,能装的先一股脑装上再慢慢配:

yum install nginx

yum install php

yum install mysql mysql-server

还有要处理FastCGI调用这个环节,PHP的二进制包已经包含了FastCGI支持,因此要做的只不过是弄一个FastCGI的进程管理器而已,用脚本写个简单的wrapper就可以了,不过看了一下Nginx的Wiki发现竟然推荐使用Lighttpd附带的spawn-fcgi工具实现,难道两者除了竞争对手还是合作伙伴吗?既然人家这么写咱也就这么用了吧,好在Lighttpd的包也非常小,顺便装了算了

yum install lighttpd-fastcgi

然后是配置工作了,首先在Nginx上把站点跑起来,修改/etc/nginx/conf.d/virtual.conf,让它变成这样:

#
# A virtual host using mix of IP-, name-, and port-based configuration
#

#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

server {
    listen       80;
    server_name  vps.dawnh.net dawnh.net;

    location / {
        root   /www/dawnh.net;
        index  index.html index.htm index.php;
    }
    location ~ \.php$ {
        root           /www/dawnh.net;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;
    }
}

 

运行/etc/init.d/nginx restart重起Nginx。

接下来是让PHP的FastCGI进程跑起来,有了spawn-fcgi就简单多了,一行命令即可:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nginx -g nginx -f /usr/bin/php-cgi

没什么问题的话就会看到运行成功的提示。然后就可以把这行丢到自启动脚本里去了。

至此Web Server方面应该是可以跑起来了,写个phpinfo()的测试页丢到/www/dawnh.net/里去,然后通过浏览器访问测试,如果能看到phpinfo页面,说明配置成功。

Oct 172008
 

这两天Dreamhost的速度真的是越来越慢了。然后又风闻目前海外VPS Hosting的价格比以前低了不少,于是就想搞一个来玩玩。比较下来发现现在VPS Hosting的平均价格水平确实是低了很多了。大概是因为经济不景气?不过应该也有技术层面的原因吧,低于$20/Mo的VPS大多是使用OpenVZ或Xen这样的免费平台,而且大多是Unmanaged类型(也就是服务商除了硬件和网络外其它一概不做技术支持,只保证VPS能正常工作,具体使用方面都要客户自己动手)。不过这对于Linux熟手来说,反倒是更喜欢得方式。

简单拟定了一下自己的需求:价位是最重要的,网速其次,性能最末,因为基本上也就是用来承载自己这个越来越没人关注的Blog,再加上能作为一个24×7待命的存储空间、Shell Terminal、Linux Lab,所以价格自然是越低越好,网速越快越好,性能基本靠自己手工来榨取。

另外关于性能,以我做过不算太长时间的VPS Hosting Provider经验来说,CPU资源基本不是大问题,关键问题在内存,现在的应用程序吃内存非常厉害,CPU变成瓶颈了顶多速度慢些,内存耗尽却经常来个OOM然后process被Kill掉,尤其是对于VPS应用,本身内存量就非常少,而且很多Provider还不给开Swap(开了也基本没效果,就是一个立即死和挣扎着死的问题而已),因此对应用的承载能力几乎就是由内存指标决定的。另外内存限制最好有一个较高的Burst,因为有些应用会有瞬时申请大块内存,但实际使用不到这么多内存的行为,而且此类程序还不少。恐怕是现在很多应用流行把软件做成类似CLR或JVM那样自己管理内存分配的原因。

基本上考察了知名的数家VPS Provider之后,敲定了SWVPS这家的LVPS-1 Plan,因为价格只有$9.95/Mo,却可以得到10G Disk/250G Traffic/400M Mem(600M Burst),这样的指标对于我来说足够了,另外花了$2.5选了LA的Data Center,在这个DC的网络从国内连过去延迟基本在200ms左右,非常了不起的数据,当然部分也归功于上海电信离骨干网出口距离比较近。

SWVPS并不是最便宜的Provider,最便宜的应该是VPSLink,不过从网上找到的评论来看vpslink基本上没什么好评,问题在于对内存限制过死,最便宜的Link-1 Plan只有64M内存而且不设Burst,基本上这种配置系统能启动起来就基本跑满了,所以除非是真的买来耍的,还是不要考虑这个Provider。

回到SWVPS,这个Provider看起来不是个大公司,Support有限,不过还好订购流程基本都是自动完成,而且支持各种订购方式,于是就下单先买一个月玩玩。使用Paypal方式支付,基本没碰到什么问题,有意思的是这家在注册为会员后会要你提供一个电话号码,它们有一套自动的语音系统会拨给你提供一个Pin码来验证身份,也就是和验证码差不多的东西了。我在点完注册后几秒钟电话就响了,一个机械但是还不算难听的女声说了句大意是我们现在给你提供SWVPS的pin码之类的话,然后就报了4个数字,完了就自动挂线,把这4个数字写进去注册才算完事。想想为了个只有10刀的业务而打越洋电话,这公司成本也太高了点。

订单下完之后就是付款,Paypal支付基本上是立刻就到账了,不过貌似我的招行卡还没有收到Paypal的结算通知,按照以前的经验,是要等几天才会出现的。但至少SWVPS那边认为你已经付款了,订单变成Pending状态,然后就是漫长地等待,大约8个小时候VPS才正式开通,也可能我订购的时间不是美国上班时间导致的吧。

最后晒一下配置:

image

对了忘了一点,这个VPS我选了Debian 4的OS template,是OpenVZ的实现,然后管理面板使用了HyperVM,都是开源并免费的东东,简单但强大。只有这种时候技术优势才能体现出生产力,这也是低价VPS为什么能生存并赚钱的原因,不过基本上国内是别想了,公司运营成本会远远高于技术优势带来的cost down。对于国内公司,能想到来减低成本的东西往往不是技术,而是类似三聚氰胺之类的东西,所以还是老老实实玩国外产品吧XD

先待个续,以后有空慢慢写VPS怎么搭建应用的文章,目前的计划是先装个Nginx+MySQL,把Blog跑起来玩玩。

Technorati Tags:
Oct 102007
 
  1. 国庆朋友来上海玩,于是全程陪同。在经历了几天地狱式的轧马路扫荡后,不得不承认体力真的大不如前了。
  2. 美罗城下面大食代有个“吐司工房”,有兴趣的可以去吃吃看,但我保证你去了就会知道饭菜究竟能做难吃到什么程度…….
  3. 上海的新疆不干正事团体也丝毫不比其它城市差,亲眼所见。
  4. feedburner全面被和谐了,虽然在下这个破blog没什么人订阅,不过也还是转回来吧,目前使用feedsky的服务,顺手响应一下当今时髦,用自己的子域名来承载feed服务,也就是http://feed.dawnh.net/了,订阅我blog的同学麻烦更新你们自己的Reader了。
  5. 国庆期间赛事不断,特奥会这个咱们就不关注了。乒乓球世界杯团体赛有惊无险。另外最终要的是WCG2007中国拿到2枚银牌。PJ的星际争霸算是历史性突破,而Sky的魔兽3没达成3连冠真是可惜了。不过国内电竞的环境和氛围真的是越来越好了。这是当年还在上学时不敢想象的。可惜现在也没有什么热情去掺和了,熬个通宵看直播比赛已经是我能做到最多的了。
  6. Windows Server 2008出了个RC0,不知什么时候微软也开始在版本号上作文章了。前几天升级了一下,该有的问题还都有,原来没有的也还没。最令人期待的WSV竟然是只能上64位系统且必须支持VT的CPU才能跑,遗憾…….
  7. IIS7最近曝光度十足,模块式的设计吸引了足够多的第三方来添砖加瓦,微软和Zend合作了几年终于把PHP从CGI拉扯到ISAPI又拉扯到FastCGI,从非线程安全到线程安全又回归非线程安全,此时终于基本可以开花结果了。而进一步的合作将会更加紧密,商业大腕以及自由阵营,究竟谁赢了?看看昨天刚发布的消息:http://blogs.iis.net/bills/archive/2007/10/09/microsoft-announces-interoperability-improvements-for-php-and-microsoft-technologies.aspx
  8. Linus终于宣布2.6.23内核final了,貌似不少发行版厂商都在等这一天,http://kerneltrap.org/Linux/2.6.23_Kernel_Finally,这应该是今天的事。NetBSD前几天也在RC,有大牛放出的MySQL性能测试结果挺好看,而FreeBSD 7也在为最后的Release做准备,真是一个丰收的季节。
Aug 072007
 

前几天Linus决定用CFS替换掉O(1)的时候就引发了一场flame war,然而除了几个当事人之外,其他人也仅仅能从使用体验上提出一些意见或者benchmark数据。更因为这些schedulers都没有经过长期考验,没有经验性数据,一堆各个领域的用户都七嘴八舌得参与进来,进而这场大讨论又闹到Server VS Desktop,Scientific Computing VS Gaming等等等等。谁让scheduler本身就是一个牵一发而动全身的关键组件呢,动这玩艺就相当于给人换大脑一样。

这次论战现在又有学院派的高人卷进来了,恰逢FreeBSD的ULE调度器3.0发布不久,所以ULE的作者Jeff Roberson (jeffr)也写了一篇文发表了自己的看法,见此:http://jeffr-tech.livejournal.com/12933.html

 jeffr的文章是从设计角度来讨论了这三个调度器实现的不同点,基本上也就是使用的数据结构和算法不同带来的性能影响,有兴趣可以仔细看看,比起LKM那些论战来,不需要懂得那几个大牛之间的前恩宿怨,应该要好看一些。

另外看看用户而不是开发者的comments也是挺好玩的:http://osnews.com/comment.php?news_id=18401

不过毕竟是看过代码才有发言权,普通用户的言论看过就好,没必要较真,真要了解细节还只能看代码。话说回来看完代码估计也不一定就了解。Scheduler设计真是每个变量都要考虑到毫厘,象我这种仅仅是结合几部书讲解调度器的章节过了一遍O(1)和初代ULE的人,还是不理解为什么这样设计或为什么不那样做。所以还是继续看大牛们的热闹吧。

Jun 212007
 

昨天去买了部NDSL,准备周末回济南送人的,这两天在我手里当然就要好好蹂躏一下了,嘿嘿。

在下从来没有拥有过属于自己的一部手掌机,算起来也就小学时候老爸给送过一部FC,以及以后的一台小霸王学习机。自此之后玩过的其他几种都是别人的。单论手掌机玩过GB,GBA,PSP。要么是抢同学的,要么是抢同事的。这次又加上一部NDSL了,哈哈。 Continue reading »

Mar 272007
 

上周末公司的ISA网关崩了,是硬件原因造成的。虽说这个ISA是我当年捡了一台废弃的双P3机器装起来的,虽说从安装到投入使用只有几个小时时间,然而基于Windows 2003的这个玩意儿却是出奇的稳定,几年下来没出过任何问题,只有因为硬件故障造成的几次死机而已。微软的东西只要调教的好,还是很不错的。 Continue reading »

Mar 202007
 

也许是国内首家?很高兴能看到终于国内也有人开始做类似的公益性服务了。
我本人由于硬件条件局限,只稍微接触过X86架构下的Solaris,而这次提供的是货真价实的Sun Fire服务器。
提供了一个免费shell帐号,10M空间,用于熟悉Solaris的话,应该是足够了。

首次登陆的motd有如下提示:

欢迎登录Unix体验中心的X4100 服务器。本服务器配备两颗2.4 GHz 的AMD Opteron
280 处理器,4 GB内存,运行Solaris 10操作系统。本系统提供了Sun Studio 11集
成开发环境以及Java SE 5.0软件开发包。
.
您可以使用如下命令调用各种语言程序的编译器:
C 语言:cc
C++ 语言:CC
Java语言:javac
Fortran 语言:f95

看来真的不错,有想研究Unix类操作系统和Sun Solaris的同学们赶紧去注册个帐号玩吧,详细介绍链接如下:

Unix体验中心 -- 开张啦!

Update:本以为是X86_64的Solaris,没想到uname -a了一下看到还是i386 -_-

 Posted by at 4:06 am  Tagged with:
Mar 122007
 

话说前两天刚买了套准系统,七拼八凑搞了台二奶机,放在桌子上n多人都以为是台音响,但实际是台P4的PC.

刚带回家几天,准备装FreeBSD系统玩来的,没想到这次栽在7-Current上了.

轻车熟路build and install the whole world,pkg_add -r gnome2,却发现xorg起不来,报错如下:
dlopen: /usr/X11R6/lib/modules/fonts/libbitmap.so: Undefined symbol “FontFileBitmapSources”
(EE) Failed to load /usr/X11R6/lib/modules/fonts/libbitmap.so
(EE) Failed to load module “bitmap” (loader failed, 7)

随手放狗一找发现确实有问题,而且是不幸的问题,虽然patchfile有了,但也必须重新编译xorg了,又要搞n小时,这年头二奶难啊。

问题原因以及解决方法在这个PR里。

突然发现今天Blog 3连击了,看来比较无聊。

 Posted by at 2:53 pm  Tagged with:
Feb 262007
 

早就想写一篇关于各种虚拟化工具的体验性文章,怎奈总拿不出时间,今天发现竟然有如此一篇好文章发表,粗看了一遍发现自己对于这方面的了解还是过于浅薄了,做一下标记,以后仔细品味。

http://www.ibm.com/developerworks/cn/linux/l-linuxvirt/

顺便说一句:虚拟化真的已经快成为操作系统体系模型中的一个新潮流了,再这么搞下去大家都准备进Matrix吧,呵呵。

 Posted by at 5:36 am  Tagged with: