本节所讲内容:
• apache服务器常见概念
• apache服务器安装及相关配置文件
• 实战:
例1:为公司内网搭建一个web服务器
例2:取消apache默认欢迎页:
例3:使用rpm搭建lamp 环境
例3:修改网根目录及对应参数,设置访问权限
例4, 使用别名,引用网站根目录以外的路径。
例6: 打开软链接功能。 通过软件链接直接引用网站根目录以外的内容
例5,当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/禁止显示目录列表
例7:通过用户认证的方式,对网站下/usr/local/phpmyadmin/目录进行保护。
学习一个服务的过程:
1、 此服务器的概述:名字,功能,特点,端口号2、 安装3、 配置文件的位置4、 服务启动关闭脚本,查看端口5、 此服务的使用方法6、 修改配置文件,实战举例7、 排错(从下到上,从内到外)
apache服务端:xuegod63.cn IP:192.168.1.63
web服务概述:
WEB服务器也称为WWW(WORLD WIDE WEB,万维网)服务器,主要功能是提供网上信息浏览服务。
常风web服务器(web):
httpd(apache)、nginxtomcatwin: IIS
客户端:IE、firefox、chrome
apache 概述:
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
安装服务器端:httpd
[root@xuegod63 ~]# yum -yinstall httpd
httpd-2.2.3-11.el5.i386.rpm :Apache 服务的主程序包,服务器端必须安装该软件包httpd-devel-2.2.3-11.el5.i386.rpm :Apache 开发程序包httpd-manual-2.2.3-11.el5.i386.rpm :Apache 手册文档,包含HTML 格式的Apache 计划的
Apache User's Guide 说明指南
注:httpd-devel-2.2.3-11.el5.i386.rpm包要解决以下两个依赖关系:
apr-devel-1.2.7-11.i386.rpmapr-util-devel-1.2.7-6.i386.rpm
安装字符界面的下浏览器客户端:elinks
[root@xuegod63 ~]# yum -yinstall elinks或者使用rpm命令手动安装以下2个软件包nss_compat_ossl-0.9.6-1.el6.x86_64elinks-0.12-0.21.pre5.el6_3.x86_64
使用方法:
[root@xuegod63 ~]# elinkswww.baidu.com[root@xuegod63 ~]# elinks192.168.1.63
配置文件
[root@xuegod63 ~]# ls/etc/httpd/conf/httpd.conf/etc/httpd/conf/httpd.conf
启动服务
[root@xuegod63 ~]#service httpd restart停止 httpd: [确定]正在启动httpd: [确定]
查看端口监听状态
[root@xuegod63 ~]#netstat -antpu | grep 80tcp 0 0 192.168.1.63:51905 23.62.109.73:80 ESTABLISHED 2727/clock-applettcp 0 0 :::80 :::* LISTEN 2966/httpdudp 0 0 fe80::20c:29ff:fee0:19a9:123 :::* 1988/ntpd
修改配置文件,实战举例
例1: 搭建一台测试web服务器
案例:
部门内部搭建一台WEB服务器,采用的IP地址和端口为192.168.1.63:80,首页采用index.html文件。管理员E-mail地址为 xuegod@xuegod.cn,网页的编码类型采用UTF-8,所有网站资源都存放在/var/www/html目录下,并将Apache的配置文件根目录设置为/etc/httpd目录。
安装服务器:
[root@xuegod63 ~]# yum -yinstall httpd 刚才已安装不在重复安装[root@xuegod63 ~]#vim/etc/httpd/conf/httpd.conf
修改配置文件相关参数:
[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf #以下参数需要我们掌握57 ServerRoot "/etc/httpd"#apache配置文件的根目录70 Timeout 60 #超时时间,接收和发送前超时秒数136 Listen 80 #监听的端口262 ServerAdmin root@localhost #设置管理员,e-mail 地址277 ServerName 192.168.1.163:80 #服务器主机名.
293 DocumentRoot "/var/www/html" #网站页面根目录
Options Indexes FollowSymLinks #当一个目录没有默认首页时,允许显示此目录列表
禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可
403 DirectoryIndex index.html index.html.var#指定默认首页
编码:
AddDefaultCharset UTF-8 # 设置服务器的默认编码为:UTF-8
例2:取消apache默认欢迎页:
[root@xuegod63 ~]# vim/etc/httpd/conf.d/welcome.conf## This configuration fileenables the default "Welcome"# page if there is nodefault index page present for# the root URL. To disable the Welcome page, comment# out all the linesbelow.##<LocationMatch"^/+$"> #把红色内容进行注释# Options -Indexes# ErrorDocument 403 /error/noindex.html#</LocationMatch>
重启:
[root@xuegod63 ~]#service httpd restart
创建首页文件
[root@xuegod63 ~]# echo'welcome to www.xuegod.cn' >/var/www/html/index.html注:selinux 关闭 getenforce查看
例3:使用rpm搭建lamp 环境
LAMP = linux+apache+mysql数据库+php[root@xuegod63 ~]# yum -yinstall httpd mysql-server php php-mysql
测试数据库
[root@xuegod63 ~]# servicemysqld start[root@xuegod63 ~]#chkconfig mysqld on[root@xuegod63 ~]# mysqlmysql> show databases;mysql>exit;[root@xuegod63 ~]# cd/var/www/html/[root@xuegod63 html]# vimindex.php<?phpphpinfo();?>
重启apache服务
[root@xuegod63 html]#service httpd restart
MaxClients 256 #设置客户端最大连接数为 256
例4:修改网站根目录及对应参数,设置访问权限
例:
设置文档目录为/var/www/html/bbs
目录与访问控制:
<Directory "/var/www/html/bbs"> #子目录会继承这个目录的属性Options FollowSymLinks #Options:Indexes:目录浏览 #Followsymlinks:可以用连接AllowOverrideNone #不允许任何OverrideOrderallow,denyAllow from192.168.1.0/24 #从哪里来的允许Deny from 192.168.1.0/24 #从哪里来的拒绝Allow from .baidu.com#Allow,Deny都会读取,如果有冲突和未说明的时候按照Order选项逗号后面的那个为准。谁写到后面,谁的优先级高。</Directory>配置完重启apache服务如果报错检查目录是否已创建?
测试:
service httpd restart #拒绝
例5, 使用别名功能,引用网站根目录以外的路径。
将/usr/local/phpmyadmin 目录通过虚拟目录功能添加到网站根目录。当访问http://192.168.1.63/phpmyadmin/ 时,就可以访问目录/usr/local/phpmyadmin中的内容。
注:apache的别名也叫虚拟目录
语法:
Alias URL路径 PATH物理路径
创建测试目录和数据
[root@xuegod63 ~]# mkdir/usr/local/phpmyadmin[root@xuegod63 ~]# cp -r/boot/grub/ /usr/local/phpmyadmin/[root@xuegod63 ~]# echo"test1" >/usr/local/phpmyadmin/a.html
修改配置文件
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
Alias /phpmyadmin"/usr/local/phpmyadmin/"<Directory"/usr/local/phpmyadmin/">Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>
注:Alias/phpmyadmin/ "/usr/local/phpmyadmin/" #/phpmyadmin/ 可以随意起。比如改/phpmyadmin/ 为/php/ 则访问链接: http://192.168.1.63/php/
例5,当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/禁止显示目录列表
修改配置文件:
[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf # 修改红色标记内容Alias /phpmyadmin/ "/usr/local/phpmyadmin/"<Directory "/usr/local/phpmyadmin/">Options -Indexes FollowSymLinks #在Indexes 前加-减号,此目录下没有默认首页时,禁止显示目录AllowOverrideNoneOrderdeny,allowAllow from all</Directory>
例6: 打开软链接功能。通过软件链接直接引用网站根目录以外的内容
root@xuegod63 ~]# mkdir/web2[root@xuegod63 ~]# echotest1 > /web2/a.html[root@xuegod63 ~]# ln -s/web2/ /var/www/html/web2[root@xuegod63 ~]# rm -rf/var/www/html/index.html[root@xuegod63 ~]# rm -rf/var/www/html/index.php[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
例7:通过用户认证的方式,对网站下/usr/local/phpmyadmin/目录进行保护。 设置/usr/local/phpmyadmin/目录,只能通过用户名密码方式访问。
方法一:
Alias /phpmyadmin/ "/usr/local/phpmyadmin/"<Directory "/usr/local/phpmyadmin/">Options IndexesFollowSymLinksAllowOverrideNoneOrderdeny,allowAllow from allauthtype basic #基本认证authname "MySQL admin software"authuserfile /etc/httpd/conf/passwd.secret #密文配置文件路径#require usertom#require usertom bobrequire valid-user #有效用户</Directory>重启apache 访问http://192.168.1.63/phpmyadmin验证
生成认证账号和密码
[root@xuegod63 ~]#htpasswd -cm /etc/httpd/conf/passwd.secret manNew password:Re-type new password:Adding password for user man
验证:
方法二:
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf<Directory"/usr/local/phpmyadmin/">Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder allow,denyAllow from allAllowOverride AuthConfig</Directory># AllowOverride AuthConfig一行表示允许对/usr/local/phpmyadmin/目录下的文件进行用户认证。
[root@xuegod63 ~]# vim/usr/local/phpmyadmin/.htaccessauthtype basicauthname "MySQL admin software by .htaccess"authuserfile /etc/httpd/conf/passwd.secret#require user tomrequire valid-user
例8 ,配置apache虚拟主机,实现在一台服务器上运行多个网站
apache虚拟主机实现有三种方法:
1、通过不同的IP地址2、通过不同的域名3、通过不同的端口号
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf
改:
#NameVirtualHost*:80为:NameVirtualHost*:80
方法1:通过不同的IP地址,解析不同的域名
给服务器增加IP(另一个域名解析)
[root@xuegod63 ~]# ifconfigeth0:1 192.168.1.65[root@xuegod63 ~]# mkdir/var/www/html/bbs[root@xuegod63 ~]# echo"bbs.xuegod.cn" >/var/www/html/bbs/index.html[root@xuegod63 ~]# echo"www.xuegod.cn" > /var/www/html/index.html
修改httpd.conf
[root@xuegod63 ~]# vim/etc/httpd/conf/httpd.conf<VirtualHost192.168.1.63:80>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/ServerName www.xuegod.cnErrorLog logs/www.xuegod.cn-error_logCustomLog logs/www.xuegod.cn-access_logcommon</VirtualHost><VirtualHost 192.168.1.65:80>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/bbs/ServerName bbs.xuegod.cnErrorLog logs/bbs.xuegod.cn-error_logCustomLog logs/bbs.xuegod.cn-access_logcommon</VirtualHost>
重启服务
service httpd restart测试:http://192.168.1.63http://192.168.1.64
方法2:通过不同的域名配置虚拟主机
#vim httpd.conf改:#NameVirtualHost *:80NameVirtualHost192.168.1.63
方法2:通过不同的域名配置虚拟主机
#vim httpd.conf
改:#NameVirtualHost *:80
NameVirtualHost192.168.1.63<VirtualHostwww.xuegod63.cn>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/ServerName www.xuegod.cnErrorLog logs/www.xuegod.cn-error_logCustomLog logs/www.xuegod.cn-access_logcommon</VirtualHost><VirtualHostbbs.xuegod63.cn>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/bbs/ServerName bbs.xuegod.cnErrorLog logs/bbs.xuegod.cn-error_logCustomLog logs/bbs.xuegod.cn-access_logcommon</VirtualHost>
重启服务
service httpd restart
修改电脑hosts文件C:WindowsSystem32driversetchosts作解析:
192.168.1.63 www.xuegod63.cn192.168.1.63 bbs.xuegod63.cn
方法3:通过不同的端口配置虚拟主机
[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf改:Listen 80
为:Listen 80Listen 8080#更改为你要添加的端口
再创建2个虚拟主机
<VirtualHost *:80>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/ServerName www.xuegod.cnErrorLog logs/www.xuegod.cn-error_logCustomLog logs/www.xuegod.cn-access_logcommon</VirtualHost><VirtualHost *:8080>ServerAdmin root@xuegod.cnDocumentRoot /var/www/html/bbs/ServerName bbs.xuegod.cnErrorLog logs/bbs.xuegod.cn-error_logCustomLog logs/bbs.xuegod.cn-access_logcommon</VirtualHost>
重启服务
service httpd restart
验证: