Ubuntu下LAMP详细配置手册来源:ChinaUnix博客日期:2008.02.1516:52(共有条评论)我要评论楔子如今Linux+Apache+Mysql+PHP的组合已经非常非常流行。可以说Linux最初的流行和Apache服务器的巨大市场占有率息息相关。LAMP又都是开源产品,在使用这一套产品的时候,除了具有不可比拟的价格优势,还可以不用过分担心版权问题。于是几乎所有开源主题的网站都使用LAMP架构,其中不乏一些著名的网站,比如维基百科全书。从这个角度我们看到,LAMP虽然廉价,但是绝对不是便宜无好货!用很少的资金投入,同样可以经受起重量级应用的高负荷考验。作为一个Linuxer,如果想在网站建设上能有所研究,不亲自配置一次LAMP是不可能的。可惜网上教程虽多,但相似度也高,大多你抄我,我抄你,而且LAMP的发展迅速,基本找不到一个完美的最新版的LAMP配置教程。而LAMP配置比较繁琐,如果没有一份很好的教程指导,恐怕新手可有苦头吃咯!正好最近Rainking在自己的工作中需要用LAMP架设一个维基网站,故对LAMP的配置进行了一些研究,不算深入,但是一般网站配置应该是可以参考的。这里总结出来,一方面是为了给有同样需要的读者以参考和帮助,另一方面也加入很多的介绍说明,给那些从来没有接触过LAMP的的读者介绍一下,增长点知识。Linux这个我就不用详细介绍了吧?大家如果连Linux是什么都不知道,那可以看一下我们这期的读者投稿“Linux宣传手册”,虽然短小,但是写的很精彩呢!这里我不详细介绍Linux,但是我要从Linux的发展历史的角度给大家讲讲Linux如何在服务器领域打下一片江山的。Linux的发展,在必然中也可以说有着很大的偶然性。1991年10月5日,LinusTorvalds在新闻组comp.os.minix发布了大约有一万行代码的Linuxv0.01版本。那时候的Linux可谓又简又陋。说它是Linus闲暇时做出的小玩意也毫不过分。连Linus本人当时也决不会想到Linux能够迅速的发展壮大到今天的规模。Linus自己认为,操作系统的内核本身并没有多大的用途,即使不断地通过来自Hacker的补丁程序加以完善,也提高不到哪里去。这是因为一个完整的操作系统,需要太多太多的软件及硬件的支持。光靠一个孤单的内核,即便其再精致,也是孤立无援的。恰恰正在此时,由Stallman带领的GNU大军已经为他们梦想中的自由的操作系统奋战多年了。当时Stallman真的可谓万事俱备,只欠东风。他们几乎完成了所有Unix软件的重构(这是相当宏大且艰巨的工程,其伟大程度绝不亚于写一个Linux),单单缺一个可以支持这些软件的操作系统内核。在之后记者对Stallman的采访中,Stallman透露,其实当时GNU的内核已经开发了很久很久,但是由于GNU内核的设计非常的复杂,比Linux复杂的多,当然功能也更强大。但这带来的后果是GNU内核调试起来非常麻烦,所以在开发进度上落在了Linux后面。倒是Linux因为其粗燥,简单,虽然设计不是那么前卫,但是得到了整个黑客届的支持,所以发展迅速。很自然的Linux与GNU结合起来,构成了一个完整的操作系统。Linus一直谦逊的称Linux其实没什么大不了,也经常矫正大家不要把Linux当作一个操作系统,而应该称这个操作系统为GNU/Linux。Stallman近些年来有些默默无闻了,自由软件的概念也逐渐被开源软件所取代。其实我个人非常的同情Stallman。要是Linux不出现该多好。最终GNU的操作系统内核一定会实现。那样GNU就会是一个完美的完整的自由操作系统。而开源软件的概念虽然现在非常流行,但究其本质,不过是自由软件的一种表现形式。我个人总是觉得开源软件窃取了自由软件的革命果实。就这两点看,我非常地为Stallman惋惜。不过从科技发展的角度看,Linux和开源软件的出现绝对是一件大好事。Linux这个幸运儿从诞生起,就非常幸运的拥有了GNU温室的培育,这不能不说是一个巧合。而Linux诞生之时所面临的挑战并不是来自Windows。当时叱诧风云的Windows95估计连策划都还没开始呢。虽然85年,Windows1.0版本就已经诞生,但是当时Windows的影响力和实力真的都不算强。桌面领域,Mac,GEM及Desqview/X都是当时主流的GUI系统,人们对Windows的评价非常低。甚至到了87年微软发布Windows2.0的时候,人们还是不能认可它,都认为Windows其实借鉴了很多苹果的东西。90年发布的Windows3.0是微软的重要转折。相信国内的很多早期电脑用户一开始接触电脑的时候,用的都是Windows3.X版本。也正是从90年开始,Windows才在桌面领域开始打出一片天下。92年发布的Windows3.1在最初发布的两个月内,销量就超过了100万。微软也正是从92年起,其资本积累和研究开发才走上良性循环的。而在服务器领域,Windows更是连小角色都算不上。93年WindowsNT才发布,而性能上自然无法媲美Unix霸主。说了那么多Windows的发展就是想告诉大家,在Linux诞生的开始,Windows并不是Linux的直接对手,甚至可以说当时Linux的开发者眼里根本就没有Windows。Linux的出现可以说是冲着昂贵的Unix和Sun的操作系统开战的。之前提到了,Linux刚出现的时候,Windows的NT版本还没出现,服务器市场基本被Unix垄断。所以一开始Linux的繁荣冲击最大的是一些Unix及服务器操作系统厂商,比如SUN和IBM。Solaris就因为Linux的流行,一次又一次的降价,直到现在完全开源免费。到今天,在服务器领域,Linux的占有率已经超过了Unix,可惜不幸的是强大的Windows也同样超过了Unix。至于目前Linux和Windows谁在服务器领域占有率更高,我好像没能找到明确的答案。说Linux高的也有,说Windows高的也有。这不是我们今天要关注的。我们需要关注的是,为什么Linux能够在服务器领域反超Unix呢?答案就是Apache。如果大家关注一下Linux的占有率增长曲线将会发现,自从Apache飞速发展成为了服务器界当之无愧的老大之后,Linux的占有率有了稳步的增长。原因很简单,只有两个字——便宜。Windows很少有人会把它用在高端服务器上,因为不够稳定。而Unix的价格又高的惊人。所以Linux就自然而然的成为了Unix的替代品。可以说,Apache的出现,成为Linux繁荣的另一个巨大契机。当然Linux繁荣还得益于Unix的发展混乱,BSD的版权官司等等。这些就不在这里赘述了。总之Linux能有今天,出了其发展模式本身有一定的必然性外,运气也是一个重要因素。在这篇文章里,Rainking所用的Linux版本是Ubuntu6.10。好了,废话不多说,下面开始给大家介绍最流行的服务器Apache。Apache1995年2月,世界上最流行的互联网HTTP服务器软件是由Illinois大学Urbana-Champaign的NCSA(NationalCenterforSupercomputingApplications)的RobMcCool开发的。但是94年中期Rob离开NCSA以后,开发就一直处于停止状态了。当时很多优秀的网管开发了他们自己的扩展和补丁,这意味着需要有一个共同的发布版本来统一这种状况。于是一个由这些网管组成的小组成立了,他们通过私人电子邮件联络,为的是完善并整理各种补丁。BrianBehlendorf和CliffSkolnick共同维护了一个邮件列表,一个信息共享空间和一个供核心开发人员登陆的由HotWired资助带宽的位于California湾地区的机器。到2月底,一共有8个人成为了这个小组的38]核心贡献者。他们成立了现在Apache小组的雏形。他们分别是:BrianBehlendorfRoyT.FieldingRobHartillDavidRobinsonCliffSkolnickRandyTerbushRobertS.ThauAndrewWilson以及额外的支持者:EricHagbergFrankPetersNicolasPioch建立在NCSAhttpd1.3的基础智商,他们增加了所有发布的补丁和能找到的所有改进功能,在自己的服务器上进行了测试,并且在1995年4月发布了第一个官方的ApacheServer0.6.2版本。碰巧的是,NCSA也同时恢复了他们的软件开发,而且他们的开发人员BrandonLong和BethFrank也在3月份作为荣誉成员加入到Apache的邮件列表中来。于是两个项目得以共享设计理念及一些技术。虽然一开始的Apache服务器是一个巨大的成功,但是Apache小组达成了一个共识就是所有的代码都需要重新设计。1995年5月到7月,一方面RobHartill带领着其他组员着重实现0.7.x版本的新特性以支持飞速发展的Apache用户社区,另一方面RobertThau设计了一个新的软件架构,包括更加模块化的结构,更容易扩展的API,基于池的内存管理和一个预存的进程模型。于是在7月份,Apache小组将开发转换到新的架构上,并将为0.7.x开发的新特性也统统加入进去。这就催生了8月份发布的Apache0.8.8。在广泛的Beta测试,对于各种平台的移植和一套新的文档完成以后,1995年11月,Apache1.0终于发布了。在Apache小组成立不到一年的时间里,Apache服务器超过了NCSAhttpd服务器成为当时互联网界占有率最高的服务器软件。并且这个排名一直保持到今天。这是相当伟大的一件事。1999年,Apache小组的成员成立了Apache软件基金会来为ApacheHttpServer提供有组织的,合法的经济支持。基金会为Apache服务器软件今后的发展提供了重要的保障,并且扩展并收购了一批开源软件。作者宣称因为这个名字好记才在最初选择它,但是流传最广的解释是(也是最显而易见的)这个名字来自这么一个事实:当Apache在1995年初开发的时候,它是由当时最流行的HTTP服务器NCSAHTTPd1.3的代码修改而成的,因此是“一个修补的(apatchy)”服务器。然而在服务器官方网站的FAQ中是这么解释的“Apache这个名字是为了纪念名为Apache(印地语)的美洲印第安人土著的一支,众所周知他们拥有高超的作战策略和无穷的耐性”。无论如何,Apache2.x分支不包含任何NCSA的代码。Apache支持许多特性,大部分通过编译的模块实现。这些特性包括从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持Perl,Python,Tcl和PHP。流行的认证模块包括mod_access,mod_auth和mod_digest。其他的例子有SSL和TLS支持(mod_ssl),proxy模块,很有用的URL重写(由mod_rewrite实现),定制日志文件(mod_log_config),以及过滤支持(mod_include和mod_ext_filter)。Apache日志可以通过网页浏览器使用免费的脚本AWStats或Visitors来进行分析。图1为Apache2市场占有量的曲线图:可以看到Apache的霸主地位从来就不曾动摇过。关于Apache的历史和特性,我们就了解到这里。下面我们来看看究竟如何安装Apache服务器。截至Rainking写本文为止,ApacheHttpdServer的最高版本为2.2.4,下载地址为:,我选择下载的是httpd-2.2.4.tar.bz2。对于Apache,我建议大家还是就用最高版本吧。稳定性兼容性基本没有问题。因为是服务器软件,一般高版本号的更加不容易被攻击。所以大家如果没有什么苛刻的兼容性要求,还是选择2.2.4版本的比较