当前位置: 操作系统/服务器>linux
本页文章导读:
▪linux 共享内存
概述 如果想在Apache/EAPI中具有共享内存的支持,那么就要建立MM共享内存库。在这种情况下,它将允许mod_ssl使用一种高效的基于RAM的会话(session)缓存代替基于磁盘的会话缓存。 注意事项.........
▪Apache1.3.22主要改进及修正
Apache 1.3.20 - 1.3.22主要改进:
安全弱点:
1。在Apache1.3.20的win32平台上发现了一个漏洞。如果客户端发送一个非常长的URI可能导致用目录列表来代替缺省主页。403 Forbidden将被返回。CAN-.........
▪Linux Apache Web 服务器(续一)
在具体讲解之前,我们必须告诉大家,Apache已经在安装时就采用了一系列的缺省值,已经让WWW服务器跑起来了。你只需要将装上Linux+Apache的主机联入Internet,然后将主页存放到“/home/httpd”.........
[1]linux 共享内存
来源: 互联网 发布时间: 2013-12-24
概述
如果想在Apache/EAPI中具有共享内存的支持,那么就要建立MM共享内存库。在这种情况下,它将允许mod_ssl使用一种高效的基于RAM的会话(session)缓存代替基于磁盘的会话缓存。
注意事项
下面所有的命令都是Unix兼容的命令。
源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。
安装在RedHat Linux 6.1下测试通过。
要用“root”用户进行安装。
Mm 的版本号是1.0.12。
软件包的来源
MM的主页:
必须确保下载:mm-1.0.12.tar.gz
安装软件包需要注意的问题
在安装MM前后保存一下文件列表对你也许是一个好主意,而后用Diff比较一下两个文件列表从而找出MM的文件被安装到哪里去了,方法是在安装MM之前运行一下“find /*>MM1”,而在安装MM服务之后运行“find /* > MM2”,接着执行命令“diff MM1 MM2 >MM”,从而得到安装文件列表。
编译程序
把软件包(tar.gz)解压缩:
[root@deep]# cp mm_version.tar.gz /var/tmp
[root@deep]# cd /var/tmp
[root@deep]# tar xzpf mm_version.tar.gz
编译和安装
cd进入新的MM目录然后在终端上键入如下命令:
./configure
--disable-shared
--prefix=/usr
这一步告诉MM对于当前的硬件配置:禁用共享库。
[root@deep]# make
[root@deep]# make test
[root@deep]# make install
注意:“make test”命令将做一些重要的测试,从而在安装本程序之前验证它是否能够正常的工作,并做出正确的反应。
清除不必要的文件
[root@deep]# cd /var/tmp
[root@deep]# rm -rf mm-version/ mm_version.tar.gz
rm命令把用于编译安装mm服务的所有源文件清除,同时也把MM的压缩文件从“var/tmp”目录中清除出去。
更多的资料
为获取更加详细的信息,可以参见下面几个man说明。
MM (3) — Shared Memory Library
mm-config (1) - MM library configuration/build utility
安装到系统中的文件
>usr/bin/mm-config
>usr/include/mm.h
>usr/lib/libmm.la
>usr/lib/libmm.a
>usr/man/man1/mm-config.1
>sr/man/man3/mm.3
责任编辑:hilinux(01-04-12 23:01) [关闭窗口][转寄邮箱]
==>提示信息<==
欢迎您对此文章发表您的个人意见,在您发表前请您注意以下问题:
1、您必须是 LinuxAid 的注册用户,而且您已经成功的登录才可以发表,如果您尚未登录,请您点击此处登录,如果您尚未注册,请您点击此处注册,在您登录/注册完成后系统会自动的带您回到本页面;
2、您所发表的内容权代表您的个人意见,与 LinuxAid 的立场无关,必要时您必须为您所发表的内容负全部责任;
3、您所发表的内容不允许包含色情、非法或者危害国家安全的言论,否则将依法追究现任;
在您填写意见相应内容时,请您注意以下问题:
1、主题最大长度为 120 字节,只允许使用除了“"”、“”之外的中英文字符;
2、内容最大长度为 250 字节,可以包含任何字符。
[2]Apache1.3.22主要改进及修正
来源: 互联网 发布时间: 2013-12-24
Apache 1.3.20 - 1.3.22主要改进:
安全弱点:
1。在Apache1.3.20的win32平台上发现了一个漏洞。如果客户端发送一个非常长的URI可能导致用目录列表来代替缺省主页。403 Forbidden将被返回。CAN-2001-0729
2。在split-logfile支持程序中发现了一个漏洞。用特别的Host:头标发送的请求可能会允许系统中任一个以.log扩展名结尾的文件被写入。PR#7848 CAN-2001-0730
3。发现一个在Multiviews用于目录索引协商时的漏洞。在一些配置中,如果一个URI请求带着M=D的QUERY_STRING,那么可能返回一个目录列表而不是预期中的索引页。CAN-2001-0731
新的特性:
1.3.22主要的新特性(相比1.3.20):
1。用户手册更新了,同很多小的修正一样这次更新包括了法语和日语的译文,一个在Cygwin上使用Apache的指南,和一个使用日志文件的全面指南。
2。用户手册可以被移出htdocs(DocumentRoot)-可在安装时的configure时调用--manualdir=选项来指定。允许在线文档从常规内容中分离。
3。支持的图标允许以PNG格式发布。
4。对Apache评测程序做了重大的检查。ab被代替了,(第一个报告在四月),新的Apache评测包括修正,附加统计,CSV和gnuplot输出以及SSL支持。
5。mod_usertrack模块中加入了新的指令,首先,CookieDomain,可被用于自定义Domain属性,加入CookieDomain指令的补丁最初提交已超过两年了。mod_usertrack使用很旧的Netscape cookie语法,新的CookieStyle指令允许使用RFC2109或RFC2965来替代它。PR#5023, PR#5920, PR#6140.
6。如果在配置文件中发现了行末注释(#),服务器将显示一个警告。不是所有的指令都能在相同行处理注释。
7。一个新指令,AcceptMutex,允许使用的互斥类型在运行时的配置接受串行序列化,当前编译时只在1.3中设置,即然不同的互斥类型在不同平台上有不同的性能特征,这条指令将使管理员们调整他们的Apache更容易,当前可能的方法列表是:uslock, pthread, sysvsem, fcntl, flock, os2sem, tpfcore, none.不是所有的平台都支持所有的方法。
8。mod_auth被增强了,将允许对一个文档的存取控制基于文件属主验证。Require file-owner将只允许验证的用户名同文档属主匹配时才可以存取,Require file-group以类似的方式工作来检查组的匹配。
相对特定平台的新特性:
1。一个新指令,AcceptFilter,增加到在运行时来控制BSD的接受过滤。这使得在不同的BSD机器之间移动二进制包更容易而不需重编译。支持接受过滤首先加在1.3.14版本中,这个功能可以推迟一个子进程处理一个新的连接的需求直到一个HTTP请求到达,因此可以增加一个给定数目的子进程可以处理的连接数。
2。在Win32平台上mod_unique_id, mod_mime_magic, 和mod_vhost_alias模块可用了。
3。在Win32平台上允许server运行在Cygwin下的代码中有一定数目的修正和更新,对Cygwin的支持首先加在1.3.20版本中。
4。在Windows NT或2000下,服务显示的名称可以由用户修改(用服务控制面板applet).
5。在Win32下增加了一个新选项-W;来起动一个依靠性服务。
6。在TPF操作系统中将从最近的改进中得到利益。包括增强的系统派生和执行,更新了允许非堵塞的文件描述符和shutdown进程的更新。
修正的bugs:
下面的bug是在1.3.20中找到并已在1.3.22中修正的:
1。在某些情况下一个子进程可能会因为mod_include模块中的一个bug而销毁,如果服务器用ErrorDocument来代替404 (request not found)错误来指到一个服务器端解析的HTML文件,而它包含了这样的片段,那么一个包含%2f的请求将导致一个段错误。这个段错误是无害的也不会导致安全问题,但是它可能是被最近的IIS蠕虫触发的。
2。Multiviews功能被修正了以防止mod_negotiation模块提供的multiview变量中包含未知的文件扩展名。PR#8130
3。Apache将在已安装版本中绑定Expat库,这修正了在装载Expat的多个拷贝时引起的冲突。(特别是使用mod_perl和XML::Parsers::Expat时)
4。UnsetEnv指令现在可以工作在配置文件的主体中。PR#8254
5。当做为反向代理时,被其它模块(如mod_usertrack或mod_securid)设置的头标可以通过后端服务器。PR#6055
6。服务器端的响应头标现在可以通过代理被记录。 PR#7461
7。mod_proxy模块现在注意了指定请求的HTTP头标将不被缓存。PR#5668
8。当一个客户端通过mod_proxy发送的一个请求意外中止,mod_proxy模块将不会关闭它的连接。PR#8090
9。CacheForceCompletion指令被修正了。PR#7383 , PR#8067 , PR#6585
10。mod_mime_magic模块中的内存泻漏被修正了。
11。Satisfy All选项已加到缺省容器中来停掉.htaccess文件。如果没有这条指令,这些文件仍然可以被得到如果他们在Satisfy Any指令的作用域中。
下面是相对于特定平台的Bug修正:
1。在NetWare中加入了很多修正,包括:允许在htpasswd中htdigest使用长文件名,限制相对恶意的模块,更好的处理非常规shutdowns,处理在SSI中的受限堆栈空间和正确识别类似proxy:http://的特别文件名。
2。在Solaris上可能发生shutdown挂起,当使用了大量管道TransferLogs和至少一个管道ErrorLog。
3。在EBCDIC平台上代理模块停止SSL代理工作时的一个bug.
4.在Win32上,mod_unique_id模块因为线程而不保证一个唯一ID的bug.
5.Win32上的Makefiles现在和Microsoft Visual C++编译器(版本5,6,7)做到100%兼容了。
安全弱点:
1。在Apache1.3.20的win32平台上发现了一个漏洞。如果客户端发送一个非常长的URI可能导致用目录列表来代替缺省主页。403 Forbidden将被返回。CAN-2001-0729
2。在split-logfile支持程序中发现了一个漏洞。用特别的Host:头标发送的请求可能会允许系统中任一个以.log扩展名结尾的文件被写入。PR#7848 CAN-2001-0730
3。发现一个在Multiviews用于目录索引协商时的漏洞。在一些配置中,如果一个URI请求带着M=D的QUERY_STRING,那么可能返回一个目录列表而不是预期中的索引页。CAN-2001-0731
新的特性:
1.3.22主要的新特性(相比1.3.20):
1。用户手册更新了,同很多小的修正一样这次更新包括了法语和日语的译文,一个在Cygwin上使用Apache的指南,和一个使用日志文件的全面指南。
2。用户手册可以被移出htdocs(DocumentRoot)-可在安装时的configure时调用--manualdir=选项来指定。允许在线文档从常规内容中分离。
3。支持的图标允许以PNG格式发布。
4。对Apache评测程序做了重大的检查。ab被代替了,(第一个报告在四月),新的Apache评测包括修正,附加统计,CSV和gnuplot输出以及SSL支持。
5。mod_usertrack模块中加入了新的指令,首先,CookieDomain,可被用于自定义Domain属性,加入CookieDomain指令的补丁最初提交已超过两年了。mod_usertrack使用很旧的Netscape cookie语法,新的CookieStyle指令允许使用RFC2109或RFC2965来替代它。PR#5023, PR#5920, PR#6140.
6。如果在配置文件中发现了行末注释(#),服务器将显示一个警告。不是所有的指令都能在相同行处理注释。
7。一个新指令,AcceptMutex,允许使用的互斥类型在运行时的配置接受串行序列化,当前编译时只在1.3中设置,即然不同的互斥类型在不同平台上有不同的性能特征,这条指令将使管理员们调整他们的Apache更容易,当前可能的方法列表是:uslock, pthread, sysvsem, fcntl, flock, os2sem, tpfcore, none.不是所有的平台都支持所有的方法。
8。mod_auth被增强了,将允许对一个文档的存取控制基于文件属主验证。Require file-owner将只允许验证的用户名同文档属主匹配时才可以存取,Require file-group以类似的方式工作来检查组的匹配。
相对特定平台的新特性:
1。一个新指令,AcceptFilter,增加到在运行时来控制BSD的接受过滤。这使得在不同的BSD机器之间移动二进制包更容易而不需重编译。支持接受过滤首先加在1.3.14版本中,这个功能可以推迟一个子进程处理一个新的连接的需求直到一个HTTP请求到达,因此可以增加一个给定数目的子进程可以处理的连接数。
2。在Win32平台上mod_unique_id, mod_mime_magic, 和mod_vhost_alias模块可用了。
3。在Win32平台上允许server运行在Cygwin下的代码中有一定数目的修正和更新,对Cygwin的支持首先加在1.3.20版本中。
4。在Windows NT或2000下,服务显示的名称可以由用户修改(用服务控制面板applet).
5。在Win32下增加了一个新选项-W;来起动一个依靠性服务。
6。在TPF操作系统中将从最近的改进中得到利益。包括增强的系统派生和执行,更新了允许非堵塞的文件描述符和shutdown进程的更新。
修正的bugs:
下面的bug是在1.3.20中找到并已在1.3.22中修正的:
1。在某些情况下一个子进程可能会因为mod_include模块中的一个bug而销毁,如果服务器用ErrorDocument来代替404 (request not found)错误来指到一个服务器端解析的HTML文件,而它包含了这样的片段,那么一个包含%2f的请求将导致一个段错误。这个段错误是无害的也不会导致安全问题,但是它可能是被最近的IIS蠕虫触发的。
2。Multiviews功能被修正了以防止mod_negotiation模块提供的multiview变量中包含未知的文件扩展名。PR#8130
3。Apache将在已安装版本中绑定Expat库,这修正了在装载Expat的多个拷贝时引起的冲突。(特别是使用mod_perl和XML::Parsers::Expat时)
4。UnsetEnv指令现在可以工作在配置文件的主体中。PR#8254
5。当做为反向代理时,被其它模块(如mod_usertrack或mod_securid)设置的头标可以通过后端服务器。PR#6055
6。服务器端的响应头标现在可以通过代理被记录。 PR#7461
7。mod_proxy模块现在注意了指定请求的HTTP头标将不被缓存。PR#5668
8。当一个客户端通过mod_proxy发送的一个请求意外中止,mod_proxy模块将不会关闭它的连接。PR#8090
9。CacheForceCompletion指令被修正了。PR#7383 , PR#8067 , PR#6585
10。mod_mime_magic模块中的内存泻漏被修正了。
11。Satisfy All选项已加到缺省容器中来停掉.htaccess文件。如果没有这条指令,这些文件仍然可以被得到如果他们在Satisfy Any指令的作用域中。
下面是相对于特定平台的Bug修正:
1。在NetWare中加入了很多修正,包括:允许在htpasswd中htdigest使用长文件名,限制相对恶意的模块,更好的处理非常规shutdowns,处理在SSI中的受限堆栈空间和正确识别类似proxy:http://的特别文件名。
2。在Solaris上可能发生shutdown挂起,当使用了大量管道TransferLogs和至少一个管道ErrorLog。
3。在EBCDIC平台上代理模块停止SSL代理工作时的一个bug.
4.在Win32上,mod_unique_id模块因为线程而不保证一个唯一ID的bug.
5.Win32上的Makefiles现在和Microsoft Visual C++编译器(版本5,6,7)做到100%兼容了。
[3]Linux Apache Web 服务器(续一)
来源: 互联网 发布时间: 2013-12-24
在具体讲解之前,我们必须告诉大家,Apache已经在安装时就采用了一系列的缺省值,已经让WWW服务器跑起来了。你只需要将装上Linux+Apache的主机联入Internet,然后将主页存放到“/home/httpd”目录下即可。
下面介绍一些最主要的配置选项的含义,以便大家用最小的精力、最小的配置准备好服务器。
4.1 httpd.conf
httpd.conf是主配置文件。它告诉服务器将如何运行。
一、最重要的配置选项ServerType standalone | inetd
这个配置选项指定如何运行WEB服务器。Apache可以使用两种方法来运
行服务器:standalone(独立的)和inetd(由inetd运行的)。
standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。
inetd参数表示WEB服务不是以一个单独的守候进程的形式支持。而是由Inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的WEB服务请求的时候,再启动一个WEB服务进程为其服务。
从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子WWW服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。
在standalone模式下,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。
standalone模式:
此种模式下,WWW服务器侦听特定端口的连接请求。当客户机发出到特
定端口地址的连接请求时,主服务器进程启动子WWW服务进程来服务该请求。如下图所示:
图2 独立服务器
另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:
Port [number] (缺省值为80)
inetd模式
inetd是侦听有小于1024的端口连接请求的Internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到WWW服务器的连接请求时,inetd启动一个WWW服务器进程,由此进程服务此请求,完成服务后即退出。如下图所示:
图3 由inetd启动的服务器
如果选择通过inetd服务器来运行Apache,需要编辑/etc/inetd.conf文件为Apache添加一条新的记录:
httpd stream tcp nowait httpd /etc/httpd/bin/httpd –f /etc/httpd/conf/httpd.conf
修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行
httpd 80/tcp httpd
做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程ID:
ps auxw |grep inetd
然后执行命令:kill –HUP
在RedHat Linux中,默认是采用inetd服务器来运行Apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了。
二、其它配置选项
Server Admin命令,用来设置WEB管理员的E-Mail地址。这个地址会出现在系统连接出错的时候,以便访问者能够将情况及时地告知WEB管理员。
命令格式: Server Admin [you E-Mail address]
例:Server Admin admin@xxx.com
ErrorLog命令,用来指定错误记录文件名称和路径。
命令格式: ErrorLog [log filename]
例:ErrorLog /var/httpd/error.log
Timeout命令,只要客户端超过这里设定的秒数还没有完成一个请求的话,服务端将终止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。
命令格式: Timeout [second]
例:Timeout 120
ServerRoot命令,它指定在何处保存服务器的配置、错误及日志文件。
命令格式: ServerRoot [fully qualified path name]
例:ServerRoot /etc/httpd
ServerName命令,它配置服务器的Internet主机名
命令格式: ServerName [host name]
例:ServerName www.xxx.com
4.2 srm.conf
srm.conf是资源配置文件,用它来告诉服务器你想在WWW站点上提供什么资源以及在哪里和如何提供它们。
DocumentRoot命令,用来指定主文档的地址。
命令格式: DocumentRoot [Path]
例:DocumentRoot /home/httpd/html
UserDir命令,用来指定个人主页的位置。如果你有一个用户test,那么它主目录是“/home/test”,当客户端输入“http://yourdomain/~test”,系统就会到对应的目录“/home/test/UserDir/”中去寻找。其中“UserDir”就是在UserDir命令中设置的指定目录。
命令格式: UserDir [Path]
例: UserDir Public_html
DirectoryIndex命令,用来声明首页文件名称。一般地,我们使用“index.html”或“index.htm”作为首页的文件名。如果这样设置后,那么客户端发出WEB服务请求时,将首先调入的主页是在指定目录下文件“index.html”或“index.htm”。
命令格式: DirecotryIndex [filename]
例:DirecotryIndex index.html index.htm
ScriptAlias命令,为脚本程序目录起个别名,具体可见4.7小节。
命令格式: ScriptAlias [/alias/] [fullly qualified path for script directory]
例: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin
4.3 access.conf的配置
access.conf文件用来设置WWW站点上诸如文件、目录和脚本项目的访问权限。该文件的第一段非注释部分如下:
Option Indexes Includes ExecCGI FollowSymLink
AllowOverride None
Order allow , deny
allow from all
大家应该注意到,这一个部分是以开始,以结束的。这表示在其中间的部分都是针对指定目录“/home/httpd/html”而言的。
1.Option命令有很多的参数,各个参数的意义如下所示:
All 准许以下所有功能(MultiViews除外);
MultiViews 准许内容协商的Multiviews;
Indexes 若该目录下无index文件,则准许显示
该目录下的文件以供选择;
IncludesNOEXEC 准许SSI(Server-side Includes),但不可
使用#exec和#include功能;
Includes 准许SSI;
FollowSymLinks 准许符号链接到其他目录;
ExecCGI 准许该目录下可以使用CGI。
2.而AllowOverride命令则是用来决定是否准许在“access.conf”文件中设定的权限是否可以被在文件“.htaccess”中设定的权限覆盖。它有两个参数:
All 准许覆盖;
None 不准许覆盖。
3.Order命令:用来设定谁能从这个服务器取得控制。它也有两个参数:
allow 可以取得控制;
deny 禁止取得控制。
现在我们一起来看看关于目录“/home/httpd/html”的设置的含义:它使得这个目录,如果不存在index.htm文件时,列出目录信息以供选择,准许SSI,允许执行CGI程序,开启了动态连接。它不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。
该文件的第二段非注释部分如下:
Option ExecCGI
AllowOverride None
这个表示目录“/home/httpd/cgi”的设置为,当前目录下可以执行CGI程序。不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。
需要说明的是,不同的LINUX系统中,可以在这个文件中看到的信息不完全相同,但是根据这里给出的信息,大家可以参照命令的解释自行理解文件中的设置,以及根据自己的需要进行相应的修改。
4.4 使新的配置生效
在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要
使得这个新的配置立即生效。我们就必须重新启动WEB服务进程。在LINUX中,我们可以十分方便地使用命令行来使得WEB服务进程重启。
/etc/rc.d/init.d/httpd restart
下面介绍一些最主要的配置选项的含义,以便大家用最小的精力、最小的配置准备好服务器。
4.1 httpd.conf
httpd.conf是主配置文件。它告诉服务器将如何运行。
一、最重要的配置选项ServerType standalone | inetd
这个配置选项指定如何运行WEB服务器。Apache可以使用两种方法来运
行服务器:standalone(独立的)和inetd(由inetd运行的)。
standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。
inetd参数表示WEB服务不是以一个单独的守候进程的形式支持。而是由Inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的WEB服务请求的时候,再启动一个WEB服务进程为其服务。
从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子WWW服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。
在standalone模式下,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。
standalone模式:
此种模式下,WWW服务器侦听特定端口的连接请求。当客户机发出到特
定端口地址的连接请求时,主服务器进程启动子WWW服务进程来服务该请求。如下图所示:
图2 独立服务器
另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:
Port [number] (缺省值为80)
inetd模式
inetd是侦听有小于1024的端口连接请求的Internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到WWW服务器的连接请求时,inetd启动一个WWW服务器进程,由此进程服务此请求,完成服务后即退出。如下图所示:
图3 由inetd启动的服务器
如果选择通过inetd服务器来运行Apache,需要编辑/etc/inetd.conf文件为Apache添加一条新的记录:
httpd stream tcp nowait httpd /etc/httpd/bin/httpd –f /etc/httpd/conf/httpd.conf
修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行
httpd 80/tcp httpd
做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程ID:
ps auxw |grep inetd
然后执行命令:kill –HUP
在RedHat Linux中,默认是采用inetd服务器来运行Apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了。
二、其它配置选项
Server Admin命令,用来设置WEB管理员的E-Mail地址。这个地址会出现在系统连接出错的时候,以便访问者能够将情况及时地告知WEB管理员。
命令格式: Server Admin [you E-Mail address]
例:Server Admin admin@xxx.com
ErrorLog命令,用来指定错误记录文件名称和路径。
命令格式: ErrorLog [log filename]
例:ErrorLog /var/httpd/error.log
Timeout命令,只要客户端超过这里设定的秒数还没有完成一个请求的话,服务端将终止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。
命令格式: Timeout [second]
例:Timeout 120
ServerRoot命令,它指定在何处保存服务器的配置、错误及日志文件。
命令格式: ServerRoot [fully qualified path name]
例:ServerRoot /etc/httpd
ServerName命令,它配置服务器的Internet主机名
命令格式: ServerName [host name]
例:ServerName www.xxx.com
4.2 srm.conf
srm.conf是资源配置文件,用它来告诉服务器你想在WWW站点上提供什么资源以及在哪里和如何提供它们。
DocumentRoot命令,用来指定主文档的地址。
命令格式: DocumentRoot [Path]
例:DocumentRoot /home/httpd/html
UserDir命令,用来指定个人主页的位置。如果你有一个用户test,那么它主目录是“/home/test”,当客户端输入“http://yourdomain/~test”,系统就会到对应的目录“/home/test/UserDir/”中去寻找。其中“UserDir”就是在UserDir命令中设置的指定目录。
命令格式: UserDir [Path]
例: UserDir Public_html
DirectoryIndex命令,用来声明首页文件名称。一般地,我们使用“index.html”或“index.htm”作为首页的文件名。如果这样设置后,那么客户端发出WEB服务请求时,将首先调入的主页是在指定目录下文件“index.html”或“index.htm”。
命令格式: DirecotryIndex [filename]
例:DirecotryIndex index.html index.htm
ScriptAlias命令,为脚本程序目录起个别名,具体可见4.7小节。
命令格式: ScriptAlias [/alias/] [fullly qualified path for script directory]
例: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin
4.3 access.conf的配置
access.conf文件用来设置WWW站点上诸如文件、目录和脚本项目的访问权限。该文件的第一段非注释部分如下:
Option Indexes Includes ExecCGI FollowSymLink
AllowOverride None
Order allow , deny
allow from all
大家应该注意到,这一个部分是以开始,以结束的。这表示在其中间的部分都是针对指定目录“/home/httpd/html”而言的。
1.Option命令有很多的参数,各个参数的意义如下所示:
All 准许以下所有功能(MultiViews除外);
MultiViews 准许内容协商的Multiviews;
Indexes 若该目录下无index文件,则准许显示
该目录下的文件以供选择;
IncludesNOEXEC 准许SSI(Server-side Includes),但不可
使用#exec和#include功能;
Includes 准许SSI;
FollowSymLinks 准许符号链接到其他目录;
ExecCGI 准许该目录下可以使用CGI。
2.而AllowOverride命令则是用来决定是否准许在“access.conf”文件中设定的权限是否可以被在文件“.htaccess”中设定的权限覆盖。它有两个参数:
All 准许覆盖;
None 不准许覆盖。
3.Order命令:用来设定谁能从这个服务器取得控制。它也有两个参数:
allow 可以取得控制;
deny 禁止取得控制。
现在我们一起来看看关于目录“/home/httpd/html”的设置的含义:它使得这个目录,如果不存在index.htm文件时,列出目录信息以供选择,准许SSI,允许执行CGI程序,开启了动态连接。它不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。
该文件的第二段非注释部分如下:
Option ExecCGI
AllowOverride None
这个表示目录“/home/httpd/cgi”的设置为,当前目录下可以执行CGI程序。不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。
需要说明的是,不同的LINUX系统中,可以在这个文件中看到的信息不完全相同,但是根据这里给出的信息,大家可以参照命令的解释自行理解文件中的设置,以及根据自己的需要进行相应的修改。
4.4 使新的配置生效
在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要
使得这个新的配置立即生效。我们就必须重新启动WEB服务进程。在LINUX中,我们可以十分方便地使用命令行来使得WEB服务进程重启。
/etc/rc.d/init.d/httpd restart
最新技术文章: