89213511 2010-03-05
在向大家详细介绍Ubuntu lighttpd之前,首先让大家了解下Ubuntu lighttpd,然后全面介绍Ubuntu lighttpd,希望对大家有用。是的,没错,用Ubuntu lighttpd(念作:lighty)+mono可以在Linux上面跑Linux程序.Ubuntu lighttpd是一个轻量级服务器,设计1w+静态网页并发.
刚开始把Ubuntu lighttpd配只好后,浏览静态网页,那个速度就像飞一样.据说豆瓣就是靠Ubuntu lighttpd支持2500+W每天的访问量.Ubuntu lighttpd还会支持FastCGI扩展支持更多的动态网页程序.我就是安装另一个mono的FastCGI,才使Ubuntu lighttpd可以跑ASP.NET程序的.
一.先来看看怎么安装Ubuntu lighttpd:
(Linux下面安装软件有一个特点就是自己编译,然后makeinstall.时间长了感觉很顺手的,刚开始不习惯.)
1.到http://www.Ubuntu lighttpd.net/上面去下载源代码,然后解压缩,假设$Ubuntu lighttpd_src为源代码目录.
2.编译,安装.
假定安装路径为$install_root,下面用"/usr/local/Ubuntu lighttpd"为例.#cd$Ubuntu lighttpd_src#./configure--prefix=/usr/local/Ubuntu lighttpd先检查一下类库依赖,看看需要用到的类库是不是都有.要是没有的,看看少哪个,在ubuntu下就是apt-get一下.
在我的openSuSE10.3下面就是"安装软件",输入名字,安装就行了.另外,要是用openSuSE10.3的话,(我的机器)默认安装Ubuntu lighttpd1.4.18的,那个也可以用的.要是不嫌麻烦的话,就装一个1.4.19.
#make#sudomakeinstall至此,Ubuntu lighttpd基本所算是安装好了,下来就是Ubuntu lighttpd的配置之类的.不想配置的话,Ubuntu lighttpd也可以用的.就看你的爱好了.反正我是不想整了,头都大了.
Ubuntu lighttpd的启动是:#$install_root/sbin/Ubuntu lighttpd-f$Ubuntu lighttpd_src/doc/Ubuntu lighttpd.conf
你可以把那个conf文件copy到一个你容易使用的地方,openSuSE默认的地方时/etc/Ubuntu lighttpd/Ubuntu lighttpd.conf.关闭Ubuntu lighttpd:(需要su权限)
#killallUbuntu lighttpd
3.稍微配置一下Ubuntu lighttpd.conf文件,使之可以浏览静态网页.看看速度如何.打开文件,找到server.document-root这个节点,后面填上静态网页的路径,比如我的是server.document-root="/home/egmkang/Program/html/".然后启动Ubuntu lighttpd,在浏览器里面输入localhost看看.一般是可以的,要是不幸的话,看看server.bind="192.168.1.110"里面填的是什么,一般是127.0.0.1或者localhost.
二.至此,Ubuntu lighttpd就可完全工作了,
要是想跑ASP.NET程序的话,还得再加上mono的FastCGI模块.下来我们安装xsp,并配置好conf文件.
1.上mono的官方网站去down一个xsp,这个是必须的,一般会是一个rpm包.
安装这个rpm包的时候肯定会说少什么包,就在那个网页上面下载什么包.因为我是用YaST安装的,没注意这个事.SuSE用户可以看看这个更新源http://en.opensuse.org/Additional_YaST_Package_Repositories#Mono
2.下来配置Ubuntu lighttpd.conf文件
在文件里面添加进去:
################################################ #fastcgi-mono-server2 ################################################ var.mono_dir="/usr/" var.mono_shared_dir="/tmp/" var.mono_fcgi_root=server.document-root var.mono_fcgi_applications="/:." $HTTP["host"]=="192.168.1.110"{ server.document-root="/home/egmkang/Program/html/" fastcgi.server=( ""=>(( "socket"=>"/tmp/fastcgi-mono-server", "bin-path"=>"/usr/bin/fastcgi-mono-server2", "bin-environment"=>( "PATH"=>"/bin:/usr/bin:"+mono_dir+"bin", "LD_LIBRARY_PATH"=>mono_dir+"lib:", "MONO_SHARED_DIR"=>mono_shared_dir, "MONO_FCGI_LOGLEVELS"=>"Standard", "MONO_FCGI_LOGFILE"=>mono_shared_dir+"fastcgi.log", "MONO_FCGI_ROOT"=>mono_fcgi_root, "MONO_FCGI_APPLICATIONS"=>mono_fcgi_applications )
#这个为cgi模块的最大实例数目
"max-procs"=>1, "check-local"=>"disable" )) ) fastcgi.map-extensions=( ".asmx"=>".aspx", ".ashx"=>".aspx", ".asax"=>".aspx", ".ascx"=>".aspx", ".soap"=>".aspx", ".rem"=>".aspx", ".axd"=>".aspx", ".cs"=>".aspx", ".config"=>".aspx", ".dll"=>".aspx", ".castle"=>".castle", ".rails"=>".rails"
现在重新启动Ubuntu lighttpd,在"虚拟目录"下面放置一个info.aspx看看能不能访问,要是能的话,就配置好了.要是不能的话,我基本上也没办法....汗这个配置文件就是我机器上面的.........这个是我的info.aspx的截屏http://images.cnblogs.com/cnblogs_com/egmkang/127872/r_info.aspx.png.
3.你刚才看到了.castle.对没错,我在这个服务器上面成功跑起来MonoRail自带的那个例子.(注:MonoRail自带的例子的程序写的有一些问题的,就是文件名称的大小写问题,刚才我好好测试了一下那个工程,全部是文件名称的问题,他自己程序写的时候没注意.而且,光靠改文件名称的大小写还不能是网站完全跑起来,得把程序里面的名字修改了,要不然他一会儿访问Index.vm,一会儿又访问index.vm........)
把MonoRail自带案例的文件复制到你的虚拟目录下面,修改Web.config文件名为web.config,./Views文件夹下面的Home文件夹为home,./Views/home/文件夹下面的Index.vm为index.vm.因为在Linux下面文件是区分大小写的,Win下面不区分.所以那个项目在Win下面能正常运行,在Linux下面不一定可以.