热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

LinuxApacheWeb服务器(续一)

在具体讲解之前,我们必须告诉大家,Apache已经在安装时就采用了一系列的缺省值,已经让WWW服务器跑起来了。你只需要将装上Linux+Ap
在具体讲解之前,我们必须告诉大家,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 
推荐阅读
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文探讨了在使用 MyBatis 进行批量数据处理时遇到的参数绑定异常问题,并提供了详细的解决方案。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了如何在Windows和Linux系统上配置Openfire服务器,包括安装步骤、数据库配置及端口映射等关键环节。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文详细对比了HashMap和HashTable在多线程环境下的安全性、对null值的支持、性能表现以及方法同步等方面的特点,帮助开发者根据具体需求选择合适的数据结构。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文探讨了服务器系统架构的性能评估方法,包括性能评估的目的、步骤以及如何选择合适的度量标准。文章还介绍了几种常用的基准测试程序及其应用,并详细说明了Web服务器性能评估的关键指标与测试方法。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
author-avatar
chenliuyan13
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有