




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
鸟哥LINUX私房菜服务器架设第二版ch18WWW.txt27信念的力量在于即使身处逆境,亦能帮助你鼓起前进的船帆;信念的魅力在于即使遇到险运,亦能召唤你鼓起生活的勇气;信念的伟大在于即使遭遇不幸,亦能促使你保持崇高的心灵。 本文由yetengfei2贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 18 WWW服务器 架站是指架设一个Web网站,什么是Web呢?Web是全球信息广播的意思, 也可以称之为互联网。这是目前最常使用的Internet协议之一。通常说的上网就是 指利用WWW来查询用户所需的信息。目前的WWW服务器主要分为两大阵营, 分别是Unix-Like上面的Apache与Windows上面的IIS,以效率价格比来说,当然是 Apache最棒了。至于WWW服务器的类型可以分为静态与动态,而这些动态的网 站里面,很多都是以Linux+Apache+MySQL+PHP架设而成的,简称为LAMP。这 种动态WWW主机很有趣,它可以沟通Server与Client端的数据。赶紧来进入这个 LAMP的世界吧。 第18章 WWW服务器 395 18.1 本章的行前准备工作 其实WWW服务器能否提供浏览器与文件系统有很深的关系,如果您对于Linux文件的 权限概念理解不足的话,那么即使您架设好一台WWW服务器,网站的数据也有可能不被 用户所浏览。此外,由于Linux的WWW服务器含有很多的外挂模块,所以您可能会需要自 行进行一些源代码的编译操作。而您的WWW服务器还很有可能同时管理多台主机名称, 所以,对于DNS和网络基础部分也要很清楚。您最好已经具有如下的基础知识: 了解鸟哥的私房菜基础学习篇内的文件与目录管理、文件属性与目录配置 等部分。 鸟哥的私房菜基础学习篇内的源代码的编译与相关意义。 DNS服务器的原理与设置技巧。 网络基础概念。 还需注意的是,务必要关闭SELinux,否则Apache肯定无法顺利提供浏览数据。 18.2 WWW的简介、资源以及服务器软件 之所以网络会如此流行,其实都是WWW造成的。早在1993年,鸟哥初次接触到网络, 当时的网络较热门的大概就是一些资源下载的FTP网站以及很多文字热烈讨论的BBS了。数 据虽然丰富,不过,总是觉得少了点什么。后来上了研究所,大约是1996年,为了课业需 要,经常连上中国台湾地区的学术网络(TANET)进行一些学术数据的检索。因为那时上 网就是找数据而已,所以慢慢地很少使用网络了。 过了几年后,再次使用图形界面的操作系统,竟然发现只要点几个小按钮,网络上就 会出现很多花花绿绿的文字与图案,有的网站甚至提供影音的特效,当时是相当惊讶。由 于图形影像的视觉方面要比BBS纯文字的数据吸引人,自然造成很多人喜欢在因特网上停 留,人多就会有商机。由于奇货可居,才会有后来90年代末期的浏览器大战,这个商业大 战也造成WWW标准不被某些浏览器所支持的后果。 这些年由于搜索引擎、博客(blog)的流行,又将因特网推向另一个新境界。下面来 了解一下什么是WWW以及它所需要的服务器软件,还有一些浏览器相关的信息。 18.2.1 WWW的简介、HTML与标准制订(W3C) 目前因特网上最热门的协议就是TCP/IP了,而TCP/IP的应用方面则有Mail、DNS、FTP、 Telnet与WWW等,其中造成TCP/IP大流行的应属Mail与WWW。WWW是Word Wide Web 的缩写,其中Web有广播网的意思,所以简称为全球信息网。WWW可以结合文字、图形、 影像以及声音等多媒体,并通过超文本(Hyper Text)的方式将信息通过Internet传递到世 界各处去。 与其他的服务器类似,您要连接WWW网站时,该网站必须提供一些资料,而您的客 户端则必须使用可以解析这些数据的软件来处理,那就是浏览器。简单地说,您可以参考 一下WWW主机与客户端的联机相关性,如图18-1所示。 图 18-1 WWW 主机与客户端的联机相关性 也就是说,您的WWW服务器不但需要一个可让客户端浏览器浏览的平台,还需要提 供客户端的一些数据。那可供查询的数据有哪些类型呢?最主要的其实是超文本标识语言 (Hyper Text Markup Language,简称HTML)。超文本标识语言大多只是一些纯文字数据, 然而通过浏览器对于一些标签()进行解释后,就能够得到不同的文字格式、颜色显 示等。您可以使用任何一个浏览器链接到搜索大师网站,然后在其页 面上单击鼠标右键,选择查看源代码,您就能发现该网页是如何写的了。 =HTML的标准版本宣告 HTML之所以被称为标识语言,如同上面的代码所示,它是由很多组成的,主要 分为两大区域,一个是与标头有关的 区块,包括该网页所使用的编码格式等。另 一部分则是所包含的实际网页内容的数据。关于HTML,这里不再介绍,您可以在 市面上找到很多相关的书籍。而除了HTML之外,目前的标识语言还包括XHTML、CSS风 格语法等,都很值得参考。 了解了WWW的Server/Client架构后,再来讨论的是:WWW的由来,伯纳斯-李(Tim Berners-Lee)在1980年代为了更有效率的让欧洲核物理实验室的科学家可以分享及更新他 们的研究成果,于是他发展出一个超文本传输协议(Hyper Text Transport Protocol,简称 HTTP)。如同前面提到的,在这个协议上的服务器需要软件,而客户端则需要浏览器来解 第18章 WWW服务器 397 析服务器所提供的数据。那么这些软件怎么来的呢? 为了让HTTP这个协议得以顺利应用,大约在90年代初期由伊利诺大学的国家超级计算 机应用中心(/)开发出服务器HTTPd(HTTP daemon之意)。HTTPd 为自由软件,所以很快领导了WWW服务器市场。后来网景通信(Netscape)开发出更强大 的服务器和相对应的客户端浏览器,那就是大家曾经熟悉的Netscape软件。这套软件分为 服务器与浏览器,其中浏览器相对便宜,不过服务器就贵得吓人。所以,在服务器市场上 主要还是以HTTPd为主的。 后来由于HTTPd一直没有妥善地发展,于是一群社会朋友便发起一个计划,这个计划 主要是改善原本的HTTPd服务器软件,他们称这个改良过的软件为Apache,取其“一个修 改的服务器(A patch Server)”的双关语。这个Apache在1996年以后便成为WWW服务器 上市率最高的软件了(/)。 虽然WWW越来越重要,但相对来说,客户端如果没有浏览器的话,他们就无法去浏 览WWW服务器提供的数据。为了抢占浏览器的占有率,于是90年代末期微软将IE浏览器 内建在Windows操作系统内,此决定也让当时相当广泛使用的Netscape浏览器(Navigator) 的占有率急速下降。后来网景公司在1998年左右将浏览器的源代码部分开放成为自由软件, 采用Mozilla通用授权(MPL)。 Mozilla(/)这个计划所开发的软件可不止浏览器而已,还包括 邮件处理软件及网页编辑软件等。当然,其中最出名的就是浏览器软件“火狐狸(firefox)”。 它与IE有什么不同呢?由于IE是整合在Windows操作系统核心内的,加上改版的幅度太慢, 甚至IE使用的HTML标准语法解析行为都是微软自订的标准,并不完全符合因特网上的标 准规范(/),导致服务器端所提供的数据无法在所有的浏览器上都显示 出相同的样式,而且客户端也容易受到网络攻击。 firefox(/)的发展就标榜小而美,因此程序相当小,所以执行效率上 非常快速,此外,在超文本的解析上,firefox主要依据W3C制订的标准来发展,所以任何 以W3C的标准开发的网站,在firefox上都能够得到设计者所希望的样式。目前firefox已经针 对市面上最常见到的Windows/Linux/Unix等操作系统来进行支持,大家可以多多使用。 由上面的介绍可以知道: WWW是依据HTTP协议而来的,分为服务器端与客户端。 Apache是一个服务器端的软件,主要依据NCSA的HTTPd服务器发展而来,为自由 软件。 Mozilla是一个自由软件的开发计划,其中firefox浏览器是相当成功的作品。 在撰写自己的网页数据时,尽量使用W3C所发布的标准,这样在所有的浏览器上才 能够顺利地显示出您想要的样子。 18.2.2 WWW主机与浏览器所提供的资源设置 由前面的说明可以知道其实WWW服务器的重点是提供数据,这些数据必须是客户端 的浏览器可以支持显示的。那么这些数据是什么类型呢?很简单,当然是文件了。如此说 来,我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下,这个目录就 是整个网站的首页了。一般来说,这个目录很可能是在/var/www/html/或者是/srv/www/中。 CentOS默认在/var/www/html中。 1. URL 那么浏览器如何取得这个目录内的数据呢?您必须在浏览器的地址栏中输入所需要的 网址。不过,现今的浏览器功能实在很多,它不仅可以连上WWW,还可以连上类似FTP 之类的网络通信协议。网址的样式如下: :/:port/ 上面就是我们常听到的URL(Uniform Resource Locator)。下面将对各部分进行讲解。 (1)协定 比较常见的协议有HTTP、HTTPs、FTP、Telnet、news、gopher等。协议告诉浏览器“请 利用此协议连接到主机端”。例如,如果您填写网址:“http:/FTP..tw/”,这表示 浏览器要链接到中国台湾省义守大学的HTTP(即port 80)的意思。如果填写网址: “FTP:/FTP..tw/”,则代表链接到中国台湾省义守大学的FTP(port 21)。因为使用 的协议不同,所以响应的数据也不相同。不过,万一对方服务器的端口启动在非正规的端 口号,例如将HTTP启动在port 81时,那您就要这样写:“http:/hostname:81/”。 (2)主机地址或主机名称 主机地址就是主机在因特网所在的IP位置。如果是主机名称的话,当然要通过名称解 析器了。一般来说,虽然使用IP就能够架设WWW网站,不过建议您还是申请一个好记又 合法的主机名称比较好。 (3)目录资源 刚刚不是提到首页的目录吗?在首页目录下的相对位置就是这个目录的资源。例如, 鸟哥的网站WWW数据放置在我主机的/var/www/html/中,所以说: ? ? 放置在/var/www/html/。 /linux_basic/index.php 放置在/var/www/html/linux_basic/index.php 中。 另外,通常首页目录下会有个特殊的文件名称,例如index.html或index.? 这是因为WWW服务器会主动以该目录下的“首页”来显示。 等。如果您 直接输入:“”,会发现其实与http:/linux. /index.php是一样的。 所以,我们的服务器会由于浏览器传来的要求协议不同而给予不一样的响应数据。 第18章 WWW服务器 399 2. 传递数据的方法 如果浏览器是以http:/hostname的型态来向服务器获取数据,那么浏览器与服务器端是 如何传递数据的呢?基本上有以下这几种方法。 (1)GET 该方法直接向WWW服务器要求地址栏上的资源,这也是最常见的。此外,使用GET 的方式可以直接在地址栏中输入变量。例如,鸟哥的讨论区有一篇提问的智慧,它的网址 是“/viewtopic.php?t=96”,发现那个“?t=96”了吗?t就是变量,96 就是这个变量的内容。如果您将问号后面的数据拿掉,会出现什么后果呢?您可以亲自试 一试。 (2)POST 这也是客户端向主机端提出的要求,只是这个要求里含有比较多的数据。例如,讨论 区里不是常常有留言的选项吗?如果您选择留言,会在浏览器冒出一个框让您填入资 料,当按下传送后,那些文本框内的数据就会被浏览器包起来传送至WWW服务器。POST 与GET不相同,GET可以在地址栏中取得客户端所要求的变量,不过POST不是使用地址栏 的功能。 (3)HEAD 主机端响应Client端的一些数据文件头。 (4)OPTIONS 主机端响应Client端的一些允许的功能与方法。 (5)DELETE 删除某些资源的举动。 最常见的是GET方法。如果有大量数据由客户端上传到WWW服务器端,才会使用到 POST。 18.2.3 WWW服务器的类型 前面提到WWW服务器软件的研发,以目前来说,占有率较高的应该是Apache与IIS, Apache是自由软件,可以在任何操作系统上安装,IIS则是Windows家族开发出来的,仅能 在Windows操作系统上面安装与执行。由于操作系统平台不一样,所以其上安装的软件当 然也不相同。下面就来聊一聊目前网站的一些特色吧。 1. 主机分类 目前Internet上提供WWW数据的主机大致上可以分为两种: (1)仅提供用户浏览的静态网页 这种类型的网站大多提供“静态”的网页,或许也提供一些动画,但基本上就仅止于 此。Server端不需要与Client端互动,所以您可以到该网站上去浏览,但是无法进行数据的 上传。目前主要的免费虚拟主机大多是这种类型,所以,您只要依照HTML的语法写好您 的网页,并且上传到该网站空间上,那么您的数据就可以让大家浏览了。 (2)提供用户互动接口的动态网站 这种类型的网站可以让服务器与用户互动,例如讨论区论坛与留言板,包括一些博客 也都是属于这种类型。这种类型的网站需要的技术水平比较高,因为它是通过“网页程序 语言”来实现与用户互动的行为,例如PHP网页程序语言配合MySQL数据库系统来进行数 据的读、写。整个互动如图18-2所示。 图 18-2 动态网站的网页程序语言与数据库接口 这就是所谓的主机端工作任务接口(Server Side Include,简称SSI),因为不论您要求 的数据是什么,其实都是通过服务器端同一个网页程序在负责将数据读出或写入数据库, 处理完毕后将结果传给客户端的一种方式,变动的是数据库内的数据,网页程序并没有任 何改变。这部分的网页程序包括PHP、ASP、perl等。 另外一种交互式的动态网页主要是在客户端实现的。例如,可以利用Java Script语法将 可执行的程序(Java Script)传送给客户端,客户端的浏览器如果提供Java Script的功能, 那么该程序就可以在客户端的计算机上运行。由于程序是在客户端计算机上执行,因此如 果服务器端所制作的程序是恶意的,那么客户端的计算机就可能会遭到破坏。这也是为什 么很多浏览器都已经将一些危险的Java Script关闭的原因。 还有一种可在客户端执行的就是flash动画格式,在这种动画格式内也可以进行程序设 计,因此客户端只要拥有可以执行flash动画的软件,就可以利用这个软件来实现交互式的 对谈。这些都是动态网站提供的功能。 从上面的说明可以知道,动态网站是目前比较热门的,如近两年来如同雨后春笋般冒 出来的个人博客(blog)就是很经典的动态网站之一。而由图18-2也知道要做成这样的动态 网站必须满足如下条件。 支持的操作系统:让所需要的软件都能够安装执行。 可运行的WWW服务器:例如Apache与IIS等WWW服务器平台软件。 网页程序语言:包括perl、PHP、JSP、CGI、ASP等。 数据库系统:包括MySQL、MSSQL、PostgreSQL以及Oracle等。 第18章 WWW服务器 401 在整个平台的设计上,目前常见的有两大系统,一个是在 Linux操作系统上,搭配 Apache+MySQL+PHP实现,这个系统被称为LAMP;另一个则是微软的IIS+MSSQL+ASP (.NET)服务器。从市场占有率方面上讲,还是以LAMP为主。下面来谈谈LAMP系统 的 三个工具。 2. LAMP系统的三个工具 (1)Apache(/) 我们前面提到,1995年以前就有很多的WWW服务器软件,其中以HTTPd占有率最高。 后来HTTPd经过多次修订后,才在1995年发布Apache(A patche Server)。它主要提供WWW 的服务器平台,后面谈到的MySQL及PHP都需要用Apache来处理。 (2)PHP(/) 按照官方的说法,PHP是一个工具,它可以被用来建立动态网页,PHP程序代码可以 直接嵌入HTML网页中,就像编辑HTML网页一样简单。所以说,PHP是一种程序语言,这 种程序语言可以直接在网页中编写,不需要经过编译即可执行。由于具有自由软件、跨平 台、容易学习及执行效率高等优点,目前它是很热门的一个设计网页的软件。您可以在市 面上找到很多相关的书籍来参考。 (3)MySQL(/) 传统的文件读取是很麻烦的,如果您只想读取该文件中的一小部分,系统还是会将整 个文件读出来;若又有多人同时读取同一个文件时,就会造成效率与系统上的问题,所以 才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件必须通过特殊接 口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过最佳化 设计,因此很适合多人同时写入与查询的工作。 SQL是针对数据库的语法,任何根据数据检索语法发展出来的数据库,都称为SQL数 据库。比较知名的自由软件数据库系统有MySQL及PostgreSQL,其中MySQL的使用率较高。 MySQL可以通过网页程序语言来进行读写的工作,因此很适合例如讨论区、论坛等的设计, 甚至很多商业网站的重要数据也是通过MySQL这个数据库软件来存取的。 如果光学会Linux与架站,您的竞争力还是不够的,多学一些MySQL的SQL语法, 以及类似PHP、JSP等网页程序语言,对您的以后是很有帮助的,如果对MySQL 有兴趣,可以参考.tw/techdoc/mysql/mysql_doc/manual_toc.html。 18.2.4 加密的网页数据(SSL)及第三方公正单位 HTTP传输协议传输数据是以明码传送的,所以您的任何东西只要被监听窃取的话,那 么该数据就等于是别人的了。那想一想,您有过在线刷卡的经验吗?在线刷卡只要输入您 信用卡的卡号与相关的截止日期后,就能够进行交易了。如果您的数据在Internet上运行时 是明码传输的,那可真要命,您的信用卡不就随时可能会被盗用。 虽然大多数Internet上面的WWW网站所提供的资料是可以随意浏览的,不过如同上面 提到的,一些物流交易网站的数据以及您个人的重要机密数据当然就不能这样随意传送了。 这个时候就需要用到https:/hostname联机方式,这种方式是利用SSL加密机制传输数据的。 1. Secure Socket Layer(SSL) 还 记 得 在 SSH 服 务 器 中 介 绍 过 它 联 机 的 机 制 吗 ? 即 利 用 非 配 对 的 Key Pair (Public+Private Kye)来组成公钥,然后通过公钥加密后传输,传输到目标主机后再以私 钥来解密,如此一来数据就以加密的方式在Internet上运行,这些数据自然就比较安全了。 SSL就是利用在WWW传输上的加密方式。 当浏览器端与WWW服务器端同时支持SSL的传输协议时,在联机阶段浏览器与服务器 就会产生那把重要的公钥。产生公钥后就能够利用浏览器来传送与接收加密过的重要数据。 要实现这样的机制,您的WWW服务器必须启动HTTPs这个重要的传输协议,在浏览器地 址栏中输入以https:/开头的网址,这样两者才能够进行沟通与联机。需要注意的是,某些 较旧的浏览器是不支持SSL的,所以在那些较旧的浏览器上无法实现HTTPs的联机。 2. Certificate Authorities(CA) 想一想SSL这个机制有什么问题?它的问题就是“那把Public Key是服务器产生的”。 这是什么问题?因为Public Key是服务器产生的,所以那个服务器如果是诈骗集团造假产生 的网站,那么您连上去后,即使是加密的数据,到了对方的主机上还是会被解开。那就麻 烦了。这个时候就需要第三方公正单位来帮忙。 所谓的CA是一个公认的公正单位,您可以向其注册一个Public Key(讲到注册您就要 知道这东西是要钱的),那么当客户端的浏览器运行时,该浏览器会主动向CA单位确认该 Public Key是否为合法注册过的,如果是,则该次联机才会被建立,如果不是呢?则浏览器 就会发出警告信息,告知用户应避免建立联机。如此一来WWW服务器不但有公正单位的 认可,用户在建立联机时也比较有保障。 更多关于SSL以及CA的介绍,可参考以下内容。 SSL:/。 CA组织之一:/Server/apacheNotice.htm。 18.2.5 客户端常见的浏览器 前面谈到WWW服务器是Server/Client的架构,而客户端使用的软件就是浏览器。目前 比较知名的浏览器主要有两款,一个是Windows内建的IE,另一个则是自由软件firefox(火 狐狸)。 第18章 WWW服务器 403 由于浏览器可以连接到因特网上,所以浏览器也有可能被入侵。其中由于IE直接内嵌 至Windows的核心中,所以如果IE有漏洞,对于系统的损害是很大的。无论如何,请记得 “务必要随时更新到最新版本的浏览器”才行。建议您可以使用firefox这款小巧玲珑的浏 览器。 除了窗口界面的浏览器软件之外,其实还有两个可以在文字接口下面进行浏览与网 页 下载的程序。 lynx:文字界面的浏览器。 wget:文字界面下用来捕获文件的指令。 这两个指令已经在前面讲过,请自行前往参考。 18.3 WWW(Apache)服务器基本设置 从前面的说明中可知,要在Linux上实现网页服务器(WWW)需要Apache这个服务 器 软件。不过Apache仅能提供最基本的静态网站数据而已,想要实现动态网站的话,最好 还 是需要PHP与MySQL的支持。所以下面我们将会以LAMP(Linux+Apache+MySQL+PHP) 作为安装与设置的介绍。 18.3.1 LAMP所需软件与其结构 既然我们是Linux操作系统,而且使用的是完全兼容于Red Hat Enterprise Linux的 CentOS版本,那当然只要利用CentOS本身提供的Apache、PHP、MySQL即可。建议您不要 自行利用Tarball安装LAMP服务器。因为自行安装不但操作麻烦,而且也不见得比系统 默 认的软件稳定。除非您有特殊的需求(例如您的某些Apache外挂程序需要较高的版本, 或 者是PHP、MySQL有特殊版本的需求),否则请使用yum来进行软件的安装即可。 那么LAMP需要什么软件呢?您必须知道的是,PHP是挂在Apache下面执行的,而 我 们要用网页的PHP程序控制MySQL,您的PHP就需要支持MySQL的模块才行。所以您至 少 需要下面几个软件: httpd。 mysql。 mysql-Server。 php。 php-devel(这个与PHP加速软件有关)。 php-mysql。 要注意,Apache目前有几种主要版本,包括1.3.x、2.0.x以及2.2.x等,在1.3.x以前的版 本通常取名为Apache,2.x以后则称为HTTPd了。请与您的distribution比较一下。至于CentOS 4.x则提供Apache 2.0.x这个版本。如果您没有安装,请直接使用yum或者是原版光盘来安装: rootlinux # yum install httpd mysql-Server php php-devel php-mysql 先来了解一下Apache 2.0.x这个版本的相关结构,这样才能够知道如何处理我们的网页 数据。 ? /etc/httpd/conf/httpd.conf(主要配置文件):最主要的配置文件,不过很多其他的 distribution 都将这个文件拆成数个小文件,分别管理不同的参数。但是主要配置文 件还是以这个文件名为主。您只要找到这个文件名就知道如何设置了。 ? /etc/httpd/conf.d/*.conf(很多的额外参数文件,扩展名是.conf):这是 CentOS 的特 色之一,如果您不想修改原始配置文件 httpd.conf 的话,那么可以将您自己的额外 参 数 文 件 独 立 出 来 , 例 如 您 想 要 有 自 己 的 额 外 设 置 值 , 可 以 将 它 写 入 /etc/httpd/conf.d/vbird.conf(注意,扩展名一定是.conf 才行),而启动 Apache 时, 这个文件就会被读入到主要配置文件中。这有什么好处?好处就是当您系统升级的 时候,几乎不需要更改原本的配置文件,只要将自己的额外参数文件复制到正确的 地点即可,维护更方便。 ? /usr/lib/httpd/modules/:Apache 支持很多的模块,所有您想要使用的模块默认都放 置在此目录中。 /var/www/html/:这是 CentOS 默认的“首页”所在目录。当您输入“http:/localhost” ? ? ? 时所显示的数据所在。 /var/www/error/:如果因为主机设置错误,或者是浏览器端要求的数据错误,在浏 览器上出现的错误信息就以这个目录的默认信息为主。 /var/www/icons/:这个目录提供 Apache 默认给予的一些小图标,可以随意使用。 当输入“http:/localhost/icons/”时所显示的数据所在。 /var/www/cgi-bin/:默认给一些可执行的CGI(网页程序)程序放置的目录;当您 输入“http:/localhost/cgi-bin/”时所显示的数据所在。 /var/log/httpd/:默认的 Apache 日志文件都放在这里,对于流量比较大的网站来说, 这个目录要很小心,因为以鸟哥网站的流量来说,一个星期的日志文件数据可大到 500MBytes 至 1GBytes 左右,所以您务必要修改一下 logrotate,从而压缩日志文件。 /usr/sbin/apachectl:这是 Apache 的主要执行文件,这个执行文件其实是 shell script, ? 它可以主动检测系统上的一些设置值,好让您启动 Apache 时更简单。 /usr/sbin/httpd:这是主要的 Apache 二进制执行文件。 /usr/bin/htpasswd(Apache 密码保护):当您想要登录某些网页时,需要输入账号与 密码。那 Apache 本身就提供一个最基本的密码保护方式,该密码的产生就是通过 这个指令实现的。相关的设置方式我们会在 WWW 进阶设置中说明。 至于MySQL方面,您需要知道的几个重要目录与文件有以下几个。 ? /etc/f:这是 MySQL 的配置文件,包括您想要进行 MySQL 数据库的最佳化, 或者是针对 MySQL 进行一些额外的参数指定,都可以在这个文件里实现。 第18章 WWW服务器 405 /var/lib/mysql/:这个目录是 MySQL 数据库放置的位置。当启动任何 MySQL 务时,请务必记得在备份时,将此目录完整地备份下来。 的服 另外,在PHP方面,应该了解以下几个文件。 ? /usr/lib/httpd/modules/libphp4.so:PHP 提供给 Apache 使用的模块。这是关系我们能 否在 Apache 网页上面设计 PHP 程序语言的最重要的文件。 /etc/httpd/conf.d/php.conf:您要不要手动将该模块写入 httpd.conf 中呢?不需要,因 为系统已经主动将 PHP 设置参数写入到这个文件中了。而这个文件会在 Apache 重 新启动时被读入。 /etc/php.ini:这是 PHP 的主要配置文件,包括 PHP 能不能允许用户上传文件?能 不能允许某些低安全性的标志等,都在这个配置文件中设置。 ? /etc/php.d/mysql.ini、/usr/lib/php4/mysql.so:PHP 是否可以支持 MySQL 接口就 看这 两个文件了。这两个文件是由 php-mysql 软件提供的。 /usr/bin/phpize、/usr/include/php/:如果您以后想要安装类似 PHP 加速器以让浏览速 度加快的话,那么这个文件与目录就需要存在,否则加速器软件无法编译成功。这 两个数据也是 php-devel 软件所提供的。 上面提到的是Red Hat系统(RHEL、CentOS、FC)所需的数据,如果是SuSE或其 他版 本的数据,请依照您的distribution管理软件的指令(rpm或dpkg)去查询一下,应该就能够 知道各个重要数据放置在哪里了。这些数据很重要,您必须对放置的地点很清楚才行。 18.3.2 httpd.conf的基本设置 在开始设置Apache之前,您要知道由于主机名称对于WWW是很有意义的,所以虽然 利用IP也能架设WWW服务器,不过建议您还是申请一个合法的主机名称比较好。如果 是 暂时测试用的主机,所以没有主机名称,那么至少在您的/etc/hosts内需要有以下这样一行: rootlinux # vi /etc/hosts localhost.localdomain localhost 这样在启动您的Apache时才不会发生找不到完整主机名称(FQDN)的错误信息。此 外,Apache只是个服务器平台而已,您还需要了解HTML以及相关的网页设计语法,这样 才能丰富您的网站。对于想要设计网页的朋友来说,应用软件或许很好入门,不过想要完 整地了解网站设计的技巧,还是需要研究一下基础的HTML或CSS比较妥当。中国台湾地区 有个不错的网站介绍给您:网站建置百宝箱(.tw/)。 您可以在里面发现不少的网页制作范例,包括一些特殊的功能。如果您真的对一些基 础语法有兴趣,并且也想要开发一些所谓的“无障碍网页空间”的话,那么可以访问一下 http:/www.W3C.org/所列举的标准语法,相信会有所收获。 终于要来谈一谈如何设置Apache的httpd.conf配置文件。再次强调,每个distribution的 此文件的内容都不尽相同,所以您必须自行找出相关的配置文件才行。那么这个httpd.conf 如何设置呢?它的基本设置是这样的: 此设置项目内的相关参数 例如,您想要针对首页/var/www/html/提供一些额外的功能,那么可进行如下设置: Options Indexes 几乎都是这样的设置方式。但如果您有额外的设置时,不能随便在httpd.conf里找个地 方写入,否则如果刚好写在“”里面,就会发生错误。下面先来 聊一聊Apache主机的基础设置。 事实上在Apache的网页中提供了很多详细的文件资料,鸟哥在下面仅介绍一些惯 用的设置项目的意义。有兴趣的话,请前往查阅Apache 2.0核心文件:http:/httpd. /docs/2.0/mod/core.html 1. 针对主机环境的设置项目 Apache针对主机的设置项目,包括响应给客户端的主机版本、主机名称、主机设置文 件顶层目录等。下面就来谈一谈: rootlinux ServerTokens OS # vi /etc/httpd/conf/httpd.conf # 这个项目在告诉客户端 WWW 服务器的版本与操作系统,不需要更改它 # 如果您不想告诉太多主机的信息,将这个项目的OS改成Minor ServerRoot /etc/httpd # 这个是设置文件的最顶层目录,通常使用绝对路径。下面某些数据设置使用相对路径时 # 就是与这个设置值有关的下层目录。不需要更改它 PidFile run/httpd.pid # 放置PID的文件,可方便Apache软件的管理。只有相对路径 # 考虑ServerRoot设置值,所以文件在/etc/httpd/run/httpd.pid Timeout 120 # 持续联机阶段如果等待超过120秒则中断该次联机 # 一般来说,此数值在300秒左右即可,不需要修改这个原始值 KeepAlive On =最好将默认的Off改为On # 是否允许持续性的联机,即一个TCP联机可以具有多个文件资料传送的要求 # 例如,您的网页内含有很多图片,那么这一次联机就会将所有的数据传送完 # 而不必对每个图片都进行一次TCP联机。将默认的Off改为On较佳 第18章 WWW服务器 407 MaxKeepAliveRequests 500 =可以将原本的100改为500或更高 # 与上个设置值KeepAlive有关,当KeepAlive设置为On时,则这个数值可决定 # 该次联机能够传输的最大传输数量。为了增进效率则可以改大一点。0代表不限制 KeepAliveTimeout 15 # 在允许KeepAlive的条件下,则该次联机在最后一次传输后等待延迟的秒数 # 当超过上述秒数则该联机将中断。设置15差不多。如果设置太高 (等待时间较长) # 在较忙碌的系统上将会有较多的Apache程序占用资源,可能有效率方面的困扰 StartServers MinSpareServers MaxSpareServers ServerLimit MaxClients 8 5 20 256 256 4000 MaxRequestsPerChild StartServers MaxClients MinSpareThreads MaxSpareThreads ThreadsPerChild MaxRequestsPerChild 2 150 25 75 25 0 # # # # # 上面这一串其实是两个与服务器联机资源有关的设置项目。默认的项目对于一般 小型网站来说已经很够用了,不过如果您的流量比较大,或许可以修订一下 这两个模块都提供用户联机的资源 (process),设置的数量越大 代表系统会启动越多的程序来提供Apache的服务,反应速度就越快 1. 针对模块来说 # worker模块占用的内存较小,对于流量较大的网站来说,是一个比较好的选择 # profork虽然占用较大的内存,不过速度与worker差异不大,并且prefork # 内存使用设计较为优秀,可以在很多无法提供debug的平台上进行自我除错 # 2. 细节设置的内容方面(以prefork为例,与worker意义相同) # StartServers代表启动Apache时同时启动的process数量 # MinSpareServers、MaxSareServers代表最大与最小的备用程序数量 # MaxClients最大的同时联机数量,也就是process数量不会超过此数量 # 假设有10个人连上来,则Apache的程序数应有1530个 # MaxRequestsPerChild 每个程序能够提供的最大传输次数要求 # 例如有个用户连上服务器后(一个process),却要求数百个网页 # 当它的要求数量超过此数值,则该程序会被丢弃,另外切换一个新程序 # 这个设置可以有效地控管每个process在系统上的“存活时间” # 除非您的网站流量特别大,否则上面的默认值已经够您使用的了。而如果您的内存 # 不够大的话,那么 MaxClients 反而要调小一点,例如150 ,否则效率不佳 Listen 80 # 与监听接口有关,默认开放在所有的网络接口上,也可修改端口,如8080 LoadModule access_module modules/mod_access.so # 加载模块的设置项目,Apache提供很多有用的模块给我们使用 Include conf.d/*.conf # 放置到/etc/httpd/conf.d/*.conf的设置都会被读入 User apache Group apache # 前面提到的prework、worker等模块启动的process的拥有者与群组设置 # 这个设置很重要,因为以后您提供的网页文件能不能被浏览都与这个身份有关 ServerAdmin dmtsailinux.vbird.tsai =改成您自己的 E-mail # 系统管理员的E-mail,当网站出现问题时,错误信息显示的联络信箱 ServerName linux.vbird.tsai =自行设置好主机名称 # 设置主机名称,如果没有指定的话,默认会以您的Host Name为依据 # 填入主机名称要找的到IP(DNS或/etc/hosts) 吧 UseCanonicalName Off # 是否使用标准主机名称?如果您的主机有多个主机名称,若设置为 On # 那么Apache只接收上面 Server Name指定的主机名称联机。建议使用Off 基本设置项目比较有趣的地方在于系统的效率议题。初次接触的朋友可能会觉得很好 奇 : 怎 么 两 个 多 执 行 模 块 ( worker 与 prefork ) 都 有 一 个 MaxClients 的 设 置 , 那 么 MaxKeepAliveRequests又是什么?您可以这么想: MaxClients控制可以“同时连上WWW服务器的总联机要求”数量,即想成最高实 时在线人数。 MaxKeepAliveRequests则是每个Client的该次联机中,可以要求的最高传输数据量。 需要注意的是,不是MaxClients的数量越高越好,因为它会消耗物理内存,所以如果 您设置太高,导致超出物理内存能够容许的范围,那么效率反而会降低(因为系统会使用 速度较慢的swap),此外,MaxClients也在Apache编译时就指定最大值了,所以您也无法 超出系统最大值,除非您重新编译Apache。 那么Apache到底使用哪个模块呢?是prefork还是worker?事实上CentOS将这两个模块 分别放到不同的执行文件中。 /usr/sbin/httpd:使用prefork模块。 /usr/sbin/httpd.worker:使用worker模块。 那如何决定使用的是哪一个程序呢?您可以去查阅一下/etc/sysconfig/httpd,就能够知 道系统默认提供prefork模块,但您可以通过修改/etc/sysconfig/httpd来使用worker模块。 2. 针对中文Big5编码语言 目前的因特网传输的数据编码大多数都是万国码(UTF-8),不过在中国台湾地区还 是有相当多的网站使用的是Big5的繁体中文编码。如果您的Apache默认是以UTF-8编码来 第18章 WWW服务器 409 传输数据,但您WWW的数据却是Big5,那么客户端将会看到“乱码”。虽然可以通过调 整浏览器的编码来让数据正确显示,不过总是觉得很讨厌。此时,可调整下面的两个参数。 rootlinux # vi /etc/httpd/conf/httpd.conf # 先确定有下面这几行,理论上,应该都会有这几行 AddLanguage zh-TW .zh-tw AddCharset Big5 .Big5 .big5 # 找到下面这一行,应该是在730行左右 AddDefaultCharset UTF-8 # 您有两种做法,一种是“直接指定由WWW宣告Big5编码,而不用网页表头的宣告” AddDef
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成人重症非人工气道患者清醒俯卧位通气护理考试试题及答案
- 组合数学竞赛辅导资料试题及答案
- 2025年社交电商裂变营销与用户增长中的食品行业3D打印技术应用报告
- 2025年智能家居产品农村市场销售渠道拓展研究报告
- 2025年扬州房地产市场区域分化态势及投资布局研究报告
- 2025年康复医疗服务体系康复康复与康复康复服务商业模式创新分析预测策略研究报告
- 园林绿化作业人员考前冲刺练习试题(A卷)附答案详解
- 2025至2030年中国纤维石膏板行业市场深度分析及投资战略规划研究报告
- 2025年文化旅游演艺项目特色旅游产品策划与运营模式研究报告
- 湖南邵阳市武冈二中7年级下册数学期末考试定向练习试题(详解版)
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试模拟试题及答案解析
- 2025年少儿英语教师职业资格考试试卷:英语教学互动式学习
- 2024年护理综合管理能力考试试题(附答案)
- 培训师必要知识课件
- 2025年事业单位卫生类专业知识试卷(卫生监督与卫生法规)试题
- 新学期-启航出发-2025-2026学年初一上学期新生开学第一课主题班会
- 2025年部编版新教材语文八年级上册全册教案设计(含教学计划)
- 人教版新教材小学二年级《数学》上册新教材解读课件
- DSA术前术后护理要点
- 难治性精神分裂症中国专家共识(2025)解读
- 2025年职业病诊断医师资格考试(职业性尘肺病及其他呼吸系统疾病)历年参考题库含答案详解(5卷)
评论
0/150
提交评论