1、济南铁道职业技术学院,Apache服务器配置,本章内容,Apache简介 获取和安装Apache 配置并运行Apache 个人主页、访问控制和用户认证 建立虚拟Web站点 建立动态的Web站点 建立安全传输的Web站点,1Apache简介,WWW和Web服务器 Apache的历史和未来 选择使用Apache Web Server,2 获取和安装Apache,以RPM方式安装Apache 获取Apache源代码包 以编译方式安装Apache,Apache的安装文件,apache-1.3.23-11.i386.rpm Apache服务器的安装软件包 把Redhat 7.3的第二张安装光盘放入光驱中
2、。 把光盘挂载到/mnt/cdrom目录下。 进入安装文件所在目录。 安装Apache。,以编译方式安装Apache,解压缩安装文件包 . 运行编译脚本的配置文件:configure文件 . # ./configure -prefix=PREFIX (其中选项-prefix用来指定Apache的安装目录,变量PREFIX代表安装目录名 ) 编译 make 安装 make install,3配置并运行Apache,12.3.1 配置文件 12.3.2 启动和停止Apache,配置文件,提示信息 全局变量 配置主服务器 配置虚拟主机,全局变量,1选择服务器启动类型 2设置服务器的根目录 3设置加锁
3、文件 4设置ScoreBoardFile 5设置PidFile 6设置超时时间 7设置服务器进程数 8设置地址绑定 9选择模块 10配置状态信息,配置主服务器,1设置用户和组 2设置Email地址 3设置服务器名 4设置正式名称 5设置文档目录 6设置访问选项和覆盖 7设置用户目录 8设置目录索引 9设置访问控制,10设置MIME类型文件 11配置日志文件 12设置服务器信息 13设置目录别名 14设置索引选项 15定义编码和语言 16添加MIME类型和处理类型 17自定义错误响应 18设置浏览器响应,Apache的配置文件,配置文件所在目录: /etc/httpd/conf/ 主配置文件:
4、httpd.conf 旧版本中的配置文件: 资源配置文件:srm.conf 访问许可权配置文件:access.conf,Access Config和ResourceConfig,为了对旧版本的Apache兼容, Apache服务器在每次启动时都查找并读取access.conf和srm.conf文件的内容。 httpd.conf文件中的AccessConfig和ResourceConfig指令用于指定access.conf和srm.conf文件的位置,默认值为: AccessConfig conf/access.conf ResourceConfig conf/srm.conf 出于安全性的考虑
5、,可以设置为: AccessConfig /dev/null ResourceConfig /dev/null 指定这两个文件为空设备文件“/dev/null ”,这样可以避免恶意的修改access.conf和srm.conf文件对系统配置的影响。,ServerType,ServerType standalone | inetdServerType用于定义apache服务器的运行模式,默认值standalone为独立运行的服务器,如设置为inetd则由xinetd服务器负责apache服务器的启动。,ServerRoot,ServerRoot “/etc/httpd “ServerRoot用于
6、指定apache服务器的配置文件及日志文件存放的根目录,默认为目录“/etc/httpd “ 。,PidFile,PidFile /var/run/httpd.pidPidFile用于指定记录httpd进程号(PID)的文件位置,默认值为“/var/run/httpd.pid”。,Timeout,Timeout 300指定站点响应的秒数。若超过这段时间仍未收到或送出数据,就断开连接。,KeepAlive,KeepAlive On|Off启用此项,表示允许保持连接,让每次连接能提出多个请求。避免每请求一个文件就跟服务器建立一次连接。,MaxKeepAliveRequests,MaxKeepAli
7、veRequests 100每次连接可提出请求的数量,设置为0表示数量不限,默认值为100。,KeepAliveTimeout,KeepAliveTimeout 15连续两个请求之间的时间如果超过15秒还未到达,则视为连接中断。,SpareServers,MinSpareServers 5 MaxSpareServers 20提供浏览服务的httpd进程的数目需要随连接数目的多少而变化,因此需要随时保持几个闲置的httpd进程等候新的连接请求。若闲置的进程数少于5个(默认值),则表示闲置进程太少,需要将其增加到5个;若多于20个(默认值)则表示闲置进程太多,需将其减少到20个。,StartSe
8、rvers,StartServers 8当apache服务器启动时,httpd进程的数目,默认值为8。,MaxClients,MaxClients 150 同时接入的数目太多时会降低系统访问性能,设置此参数可限制同时连接的最大数值,默认值为150。,Listen,Listen 12.34.56.78:80 Listen 80用于设置apache服务器监听指定IP和(或)端口上的连接请求。,Port,Port 80指定apache服务器监听的端口号。,User & Group,User apache Group apache设置httpd用哪个用户帐号和组来启动,默认使用apache用户和组。,
9、ServerAdmin,ServerAdmin rootlocalhost服务器管理员的邮件地址,当服务器运行出错时将向此邮件地址发信。,ServerName,ServerName localhost设置主机的名称,此名称会被送到远程连接程序,以取代安装Apache主机的真实名称。默认值是localhost,行首加#号,关闭此功能。,DocumentRoot,DocumentRoot “/var/www/html“指定Apache服务器存放网页的文档根目录。,DirectoryIndex,DirectoryIndex指令用于指定目录中默认的索引文件名称,可同时指定多个文件名称,两两之间用空格分
10、割。默认值为index.html。实例: DirectoryIndex index.html index.htm index.shtml index.php,UserDir,UserDir public_htmlUserDir用于设定用户个人主页存放的目录,默认为“public_html”目录,即/home/anyuser/public_html。,为每个用户配置个人主页,例:为用户user1建立个人主页 cd /home/user1 mkdir public_html chown user1.user1 public_html cd chmod 711 user1在/home/user1/p
11、ublic_html中建立index.html 使用浏览器浏览http:/localhost/user1/,Alias,Alias用于设置路径别名Alias /doc/ /usr/share/doc/ 给“/usr/share/doc/” 设置路径别名为“/doc/”,载入模块指令,Apache服务器采用动态共享对象(DSO,Dynamic Shared Object)的机制,在启动Apache服务器时可根据实际需要载入适当的模块,使其具有相应的功能。载入模块的相关指令有: LoadModule ClearModuleList AddModule,LoadModule,LoadModule指令
12、用于动态载入模块,即将模块外挂在Apache服务器上。语法: LoadModule 模块名称 模块文件路径全名实例: LoadModule status_module modules/mod_status.so,ClearModuleList,ClearModuleList指令用于清空Apache服务器内建的模块列表。通常先使用该指令清空列表,再使用AddModule指令向模块列表加入模块。语法: ClearModuleList,AddModule,AddModule指令用于向模块列表加入新的模块名称。语法: AddModule 模块实例: AddModule mod_status.c,容器指
13、令,容器指令(container directive)通常包括在括号内,较容易识别。条件指令和不是容器指令,他们是例外。常用的容器指令有:, , 设置“/”根目录的访问权限Options FollowSymLinksAllowOverride None目录属性设置结束使用 设置指定目录的访问权限,其中可包含: Options AllowOverride Order Allow Deny 五个属性。,Options属性,Options FollowSymLinks Indexes MultiViewsOptions可以组合设置下列选项: All:用户可以在此目录中作任何事情。 ExecCGI:允
14、许在此目录中执行CGI程序。 FollowSymLinks:服务器可使用符号链接指向的文件或目录。 Indexes:服务器可生成此目录的文件列表。 None:不允许访问此目录。,AllowOverride,AllowOverride NoneAllowOverride会根据设定的值决定是否读取目录中的.htaccess文件,来改变原来所设置的权限。All:读取.htaccess文件的内容,修改原来的访问权限。 None:不读取.htaccess文件为避免用户自行建立.htaccess文件修改访问权限,http.conf文件中默认设置每个目录为: AllowOverride None。,Acce
15、ssFileName,AccessFileName filename AccessFileName指令用于指定保护目录设定文件的文件名称,默认值为“.htaccess”。AccessFileName .acl,Allow,设定允许访问Apache服务器的主机Allow from all 允许所有主机的访问Allow from 202.96.0.97 202.96.0.98 允许来自指定IP地址主机的访问,Deny,设定拒绝访问Apache服务器的主机Deny from all 拒绝来自所有主机的访问Deny from 202.96.0.99 202.96.0.88 拒绝指定IP地址主机的访问,
16、Order,Order allow,denyOrder用于指定allow和deny的先后次序。 范例: Order deny,allow Deny from all Allow from 202.96.0.97Order allow,deny Allow from all Deny from 202.96.0.97,容器包含只应用于指定文件的指令,文件应该由文件名(必要时使用统配符)指定。实例:Order allow,denyDeny from all , ,容器包含只应用于特定URL的指令。实例:SetHandler server-status order deny,allow allow
17、from 127.0.0.1 deny from all ,Apache的启动与停止,/etc/rc.d/init.d/httpd apache的启动脚本 service httpd start 启动apache服务器的命令 service httpd stop 停止apache服务器的命令 service httpd status 查询apache服务器状态的命令 service httpd restart 重新启动apache服务器的命令,4 个人主页、访问控制和用户认证,设置个人主页 访问控制 用户认证,设置个人主页,修改httpd.conf文件,在用户目录设置一节中加入如下设置: #
18、UserDir: The name of the directory that is appended onto a users home # directory if a user request is received. # UserDir mainpage (其中命令UserDir指定了用户的网页文件在其主目录下保存的位置 ),访问控制,建立基于用户的访问控制 Apache可以针对不同的目录或文件设定不同的口令文件,实现基于用户的访问控制。建立基于主机的访问控制 Apache也可以针对不同的目录或文件设定指定IP地址的主机可以(不可以)访问。,用户认证,采用文本方式存储认证信息 采用数据
19、库方式存储认证信息,采用文本方式存储认证信息,实例:AuthName “userauth“ AuthType Basic Require valid-user AuthUserFile /etc/httpd/conf/.htpasswd定义目录“/home/auserdir”的用户认证。,AuthName,AuthName auth-domain AuthName指令对当前定义的认证区域进行命名,该名称会出现在浏览器客户端的用户认证对话框中,以标识用户被认证的区域。如认证区域名称中包含空格需用“”括起。 AuthName需与AuthType、Require、AuthUserFile一同使用。,
20、AuthType,AuthType BasicAuthType指令用于设置身份认证时传送密码的编码方式。设置为“Basic”时利用uuencode编码方式传送密码。 AuthType需与AuthName 、Require、AuthUserFile一同使用。,Require,Require指令用于设定可进行身份验证的用户。 Require user 用户名 用户名 设置指定用户名的用户可通过身份验证访问区域。 Require group 组名 组名 设置指定组内的用户可通过身份验证访问区域。Require valid-user 设置所有合法用户可通过身份验证访问区域。,AuthUserFile,
21、AuthUserFile file-path AuthUserFile指令用于设置验证用户身份的密码文件,该文件名需设置绝对路径。 例如: AuthUserFile /etc/httpd/conf/.htpasswd 密码文件是用htpasswd命令创建的。,htpasswd命令,htpasswd指令用于创建密码文件和设置用户密码: htpasswd c 文件名 用户名创建密码文件并添加指定的用户。-c表示创建文件。 例: htpasswd c .htpasswd user1htpasswd 文件名 用户名在指定的密码文件中添加指定用户的密码,如该用户已存在则修改用户密码。,AuthGroup
22、File,AuthGroupFile 组文件路径 AuthGroupFile指令用于设置提供用户验证的组文件。需与Require group 指令一同使用。指定的组文件为文本文件,每行定义一个组,格式如下: 组名: 用户名1 用户名2 组名后面的是属于该组的用户列表,中间用“:”分割;用户列表中用户名与用户名间用空格分割。,采用数据库方式存储认证信息,采用MySQL数据库 .在Apache中使用MySQL存储认证信息可以通过mod_auth_mysql模块来实现 .,建立虚拟Web站点,建立基于IP地址的虚拟主机 需要在同一台主机上绑定多个IP,在每个IP上建立一个虚拟主机,由于IP地址缺乏,
23、此种方法不常使用。建立基于域名的虚拟主机 所有的虚拟主机都使用同一个IP地址,通过不同的域名来标识不同的虚拟主机。,基于IP的虚拟主机的配置,实例: # ifconfig eth0:0 192.168.0.2 # route add -host 192.168.0.2 eth0:0ServerAdmin webmasterserver.astronomy.orgDocumentRoot /var/www/mailserverServerName mail.astronomy.orgErrorLog logs/mailserver error_logCustomLog logs/mailserv
24、er-access_log common# /usr/local/apache2/bin/apachectl restart,基于域名的虚拟主机的配置,实例:修改httpd.conf 。 NameVirtualHost 192.168.0.1ServerAdmin webmasterserver.astronomy.orgDocumentRoot /var/www/mailserverServerName mail.astronomy.orgErrorLog logs/mailserver error_logCustomLog logs/nameserver access_log common
25、# /usr/local/apache2/bin/apachectl restart,建立动态的Web站,PHP简介 获取、安装、配置PHP,安装PHP,两种方法可以安装PHP,一种是把PHP以静态的方式编译进Apache,另一种是把PHP最为一个共享模块(DSO)安装到Apache中。,静态安装PHP,解压缩Apache安装包 解压缩PHP的安装包,用选项-j来解压bzip类型的压缩文件 进入生成的php-4.3.3目录,并配置PHP的编译脚本 编译并安装PHP,作为共享模块安装PHP,解压缩Apache安装包和PHP的安装包 。进入Apache安装文件所在目录,配置Apache的编译脚本,
26、使其支持共享模块 。编译并安装Apache 。进入PHP安装文件所在目录,配置PHP的编译脚本 。编译并安装PHP 。,配置PHP,(1)设置PHP的初始配置文件,把php.ini-dist复制到目录/usr/local/lib下,并命名为php.ini。 (2)在Apache配置文件httpd.conf中加入如下行,设置Apache加载PHP模块 。 LoadModule php4_module libexec/libphp4.so (3)在Apache配置文件httpd.conf中加入如下行,告诉Apache那些后缀的文件是PHP脚本文件。 AddType application/x-ht
27、tpd-php .php .phtml (4)启动Apache服务器 。,7建立安全传输的Web站点,12.7.1 SSL简介 12.7.2 安装具有SSL的Apache,SSL简介,SSL提供的安全通道有以下特点: 1数据的保密性 2数据的一致性 3安全验证,安装具有SSL的Apache,安装OpenSSL 配置Apache服务器使用SSL,安装OpenSSL,软件包的文件名是openssl-0.9.7b.tar.gz,配置Apache服务器使用SSL,编译带mod_ssl的Apache 创建证书签署请求文件 创建自签署证书 配置Apache使用证书和密钥 测试Apache和SSL,Apache的帮助资源,WU-FTP的主站点: http:/www.apache.org/文档目录: /usr/share/doc/apache-1.3.23参考手册: 需安装apache-manual-1.3.23-11.i386.rpm软件包 /var/www/html/manual/index.html,相关网络资源,中文站点: http:/ http:/ http:/www.linuxcn.org/ http:/ http:/ Linux发行版本比较: http:/ 掌握虚拟Web服务器的实现方法 掌握ApachePHPMysql的实现,