基于apache的web服务-实验报告
-
实验环境: fedora 10
-
前期准备
安装apache及其附属的包,在我的系统下分别为:
httpd-2.2.10-2.i386.rpm
httpd-manual-2.2.10-2.i386.rpm
httpd-tools-2.2.10-2.i386.rpm
-
配置一个基于IP的虚拟主机
第一步:当前的网络增加一个虚拟IP地址。使用命令:ifconfig wlan0:0 192.169.0.35 netmask 255.255.255.0 。这样当前主机使用了两个逻辑ip分别为 192.168.0.32 和192.168.0.35。
第二步:配置,在"/etc/httpd/conf/httpd.conf"最后加入如下内容:
<VirtualHost 192.168.0.32:80> #指定IP和端口号
ServerAdmin rexchenhan@gmail.com
DocumentRoot /var/www/html/www.rex.com #这里是存放该网站的目录
ServerName www.rex.com
ErrorLog logs/dummy-host.www.rex.com-error_log #日志的位置
CustomLog logs/dummy-host.www.rex.com-access_log common
</VirtualHost>
<VirtualHost 192.168.0.35:80>
ServerAdmin rexchenhan@gmail.com
DocumentRoot /var/www/html/auto.rex.com
ServerName auto.rex.com
ErrorLog logs/dummy-host.auto.rex.com-error_log
CustomLog logs/dummy-host.auto.rex.com-access_log common
</VirtualHost>
第三步:在/var/www/html下创建网站对应目录。
www.rex.com auto.rex.com
分别创建对应的index.html用于测试,并且给两个目录所属組改为apache。 最后使用links 访问以上两个ip地址,可见分别访问到了两个不同网站。
第一步:修改主配置文件,加入一个监听的端口,这里我们指定为8080
Listen 8080
第二步:修改增加一个虚拟主机记录
<VirtualHost 192.168.0.32:8080> #注意这里端口号改为了8080
ServerAdmin rexchenhan@gmail.com
DocumentRoot /var/www/html/auto.rex.com
ServerName auto.rex.com
ErrorLog logs/dummy-host.auto.rex.com-error_log
CustomLog logs/dummy-host.auto.rex.com-access_log common
</VirtualHost>
第三步:测试同一个地址的两个端口:80和8080
用links访问192.168.0.32和192.168.0.32:8080发现分别访问了两个不同的页面。
-
配置一个基于域名的虚拟主机
第一步:修改主配置文件。把之前做的几个虚拟主机配置全部注释掉(基于域名和基于IP或端口的方式是冲突的),并且打开NameVirtualHost *:80 这个选项。把两个之前做好的开头修改为:
<virtualHost *:80>
第二步:这里我的dns里已经把auto.rex.com和www.rex.com全部配置好,所以我直接启动dns服务,并把自己的dns解析地址指向自己的主机。
第三步:用links打开两个域名最好使用 http://auto.rex.com 这样的地址。否则若是当前目录下有auto.rex.com这个目录,links会优先打开这个目录。(迷惑了我很久,刚发现)
-
配置访问授权
一些网站打开后会跳出对话框需要输入用户名和密码,这里也做一个这样的授权。第一步:在需要加入访问控制的虚拟主机配置下加入一些配置。
<Directory "/var/www/html/www.rex.com"> #注意这里目录和需要配置的主机目录相同
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
第二步:在www.rex.com目录下创建文件.htaccess 增加如下内容:
Authtype Basic
AuthName "www.rex.com Auth page"
AuthUserFile /etc/httpd/conf/passwd #密码文件地址
require valid-user
require user rexchenhan #允许访问的用户名
第三步:创建密码文件
htpasswd -dc /etc/httpd/conf/passwd rexchenhan
这条命令同时创建密码文件
最后,重启服务,测试。
-
排错的日志文件目录
/var/log/httpd/,这个目录下记录了对应与每个虚拟主机的日志和主错误日志