第四章 构建LAMP网站服务平台
实验报告
1、安装apache服务器软件及相关组件
查看系统中是否安装apache服务相关的软件包:
[root@www /]# rpm -qa | grep httpd
----------------------------------------------------------------
httpd-2.2.3-31.el5 apache服务器程序软件包
httpd-manual-2.2.3-31.el5 apache服务器帮助手册文档
----------------------------------------------------------------
只需要包含这2个软件包即可!
2、查看安装的目录和文件
[root@www /]# rpm -ql httpd
[root@www /]# rpm -ql httpd-manual
与apache服务器相关的主要目录和文件如下:
----------------------------------------------------------------
/etc/httpd apache服务器程序的根目录
/etc/httpd/conf/httpd.conf apache服务器主配置文件
/etc/httpd/conf.d apache服务器其他功能模块的配置文件存放目录,如mysql、php、ssl、perl等的配置文件
/var/www/html 网页文档的默认根目录
/etc/init.d/httpd apache服务器的脚本控制文件
/usr/sbin/httpd apache服务器的主要执行程序
/var/log/httpd/access_log 访问日志文件
/var/log/httpd/error_log 错误日志文件
/usr/sbin/apachectl apache服务器的脚本控制文件
/usr/bin/ab apache自带的一个压力测试工具(apache基准测试工具)
/usr/bin/htpasswd 产生身份验证用户的密码文件
/usr/lib/httpd/modules apache服务器的模块存放目录
/var/log/httpd 存放apache的日志文件
----------------------------------------------------------------
3、默认情况下主配置文件做必要的修改即可构建基本可用的web服务器
#####分割线 构建基本可用的web服务器####
基本步骤:
(1) 修改主配置文件httpd.conf
去掉注释:#ServerName www.example.com:80
修改为:ServerName www.benet.com:80
需要有DNS服务器的支持,首先搭建DNS服务器
(2) 检查主配置文件httpd.conf是否存在语法错误
方法一:apachectl -t
方法二:httpd –t
(3) 启动httpd服务
[root@www /]# service httpd start
(4) 查看httpd服务端口是否开启
[root@www /]# netstat -anpt | grep 80
(5) 在客户端通过浏览器访问测试
http://www.benet.com/
#########分割线 测试web服务器的性能###########
基本步骤:
(1) 使用ulimit命令修改最大文件数限制为10000
ulimit -n 10000
(2) 使用ab命令进行压力测试
[root@www /]# ab -q -c 2000 -n 4000 http://www.benet.com/
(3) 查看得到的统计信息
########分割线 构建基于IP/端口/域名的虚拟主机##########
基本步骤:
********实现基于IP的虚拟主机********
(1) 创建虚拟主机测试web文档
假设当前web服务器有3个虚拟主机
虚拟主机一 对应主目录 /var/www/html
虚拟主机二 对应主目录 /var/www/xuni2
虚拟主机三 对应主目录 /var/www/xuni3
[root@www /]# cd /var/www
[root@www www]# mkdir xuni2 xuni3
分别在3个目录中放置测试web文档,默认名称都是index.html
参考web文档HTML代码:
<html>
<head>
<title>
~~~~~~~~~~~~~Virtual host~~~~~~~~~~~
</title>
<body bgcolor=blue>
<p align=center>
##############Virtual Host###########
</p>
</body>
</head>
</html>
(2) 给当前服务器设置2个虚拟接口,并分配IP地址
[root@www /]# ifconfig eth0:0 192.168.100.3 netmask 255.255.255.0
[root@www /]# ifconfig eth0:1 192.168.100.4 netmask 255.255.255.0
(3) 修改apache主配置文件httpd.conf,配置虚拟主机
[root@www /]# vi /etc/httpd/conf/httpd.conf
定位到最后一行
<VirtualHost 192.168.100.2:80>
DocumentRoot /var/www/html
ServerName host1 //这里设置虚拟主机的主机名
</VirtualHost>
<VirtualHost 192.168.100.3:80>
DocumentRoot /var/www/xuni2
ServerName host2
</VirtualHost>
<VirtualHost 192.168.100.4:80>
DocumentRoot /var/www/xuni3
ServerName host3
</VirtualHost>
(4) 重新启动httpd服务,在客户端通过浏览器访问测试
http://192.168.100.2/
http://192.168.100.3/
********实现基于端口的虚拟主机********
(5) 删除掉刚才添加的2个虚拟接口
[root@www /]# ifconfig eth0:0 down
[root@www /]# ifconfig eth0:1 down
(6) 修改apache主配置文件httpd.conf,配置虚拟主机
定位到最后一行
修改listen参数为:
Listen 192.168.100.2:80
listen 192.168.100.2:81
listen 192.168.100.2:82
修改虚拟主机参数为:
<VirtualHost 192.168.100.2:80>
DocumentRoot /var/www/html
servername host1
</VirtualHost>
<VirtualHost 192.168.100.2:81>
DocumentRoot /var/www/xuni2
servername host2
</VirtualHost>
<VirtualHost 192.168.100.2:82>
DocumentRoot /var/www/xuni3
servername host3
</VirtualHost>
(7) 重新启动httpd服务,在客户端通过浏览器访问测试
http://192.168.100.2/
http://192.168.100.2:81/
********实现基于域名的虚拟主机********
(8) 配置DNS服务器,创建区域及相应主机名
www.benet.com 192.168.100.2
www.accp.com 192.168.100.2
www.btest.com 192.168.100.2
配置步骤略
(9) 修改apache主配置文件httpd.conf,配置虚拟主机
定位到最后一行
修改listen参数为:
Listen 192.168.100.2:80
修改虚拟主机参数为:
Na</VirtualHost>
<VirtualHost 192.168.100.2:80>
DocumentRoot /var/www/xuni2
servername www.accp.com
</VirtualHost>
<VirtualHost 192.168.100.2:80>
DocumentRoot /var/www/xuni3
servername www.btest.com
</VirtualHost>
(10) 重新启动httpd服务,在客户端通过浏览器访问测试
http://www.benet.com/
http://www.accp.com/
##########分割线 建立系统用户的个人主页#####################
(1) 修改apache主配置文件httpd.conf,启用apache个人主页功能
确认主配置文件中有参数:
LoadModule userdir_module modules/mod_userdir.so
设置参数:
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
(2) 建立系统用户,并建立个人主页测试文件
创建测试用户usera和userb
[root@www named]# su - usera
[usera@www ~]$ mkdir public_html
[usera@www ~]$ echo "UserA's Home Page" > public_html/index.html
[usera@www ~]$ chmod o+x /home/usera
[root@www named]# su - userb
[userb@www ~]$ mkdir public_html
[userb@www ~]$ echo "UserB's Home Page" > public_html/index.html
[userb@www ~]$ chmod o+x /home/userb
(3) 重新启动httpd服务
service httpd restart
(4) 在客户端浏览器中访问个人主页
http://www.benet.com/~usera/
http://www.benet.com/~userb/
###########分割线 使用awstats分析web日志信息#######
awstats相关目录和文件列表:
-----------------------------------------------------------------------
配置文件存放目录:/etc/awstats
网站配置文件范例:/etc/awstats/awstats.localhost.localdomain.conf
网站配置文件范例:/etc/awstats/awstats.model.conf
主目录:/usr/share/awstats
语言目录:/usr/share/awstats/lang
awstats工具目录:/usr/share/awstats/tools
默认的awstats根目录:/usr/share/awstats/wwwroot
/var/lib/awstats
/etc/cron.hourly/awstats
/etc/httpd/conf.d/awstats.conf
------------------------------------------------------------------------
(1) 拷贝awstats的软件包到当前的web服务器中
[root@www tool]# ls
awstats-6.9.tar.gz
(2) 解压并释放awstats软件包,并安装
[root@www tool]# tar zxvf awstats-6.9.tar.gz -C /usr/local //解压软件包到/usr/local目录下
[root@www local]# mv awstats-6.9/ awstats //更改软件包的名称
[root@www local]# cd /usr/local/awstats/tools/
[root@www tools]# ./awstats_configure.pl //执行安装脚本
----设置apache主配置文件httpd.conf的路径
/etc/httpd/conf/httpd.conf
----创建awstats配置文件
Y
----定义日志分析的目标站点的名称
----定义awstats配置文件的存放目录(默认为/etc/awstats)
直接回车
----添加cron计划任务(在这里提示脚本无法自动添加,需要用户手动添加)
直接回车
----按回车键退出安装脚本
(3) 修改awstats.www.benet.com脚本
cd /etc/awstats/
vi awstats.www.benet.com.conf
修改:
LogFile="/var/log/httpd/access_log"
(4) 创建数据库存放目录,并更新数据库
perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update-config=www.benet.com
(5) 设置cron计划任务,以便定时运行日志分析程序
[root@www awstats]# crontab -e
* */3 * * * perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wwww.benet.com
[root@www awstats]# service crond restart
(6) 在网页浏览器中查看分析报告
http://www.benet.com/awstats/awstats.pl?config=www.benet.com
每次访问输入的URL太长,建立的web页面来实现跳转
代码如下:
这样就可以通过http://www.benet.com/aw.html来访问了!
##########分割线 实现apache的访问控制#####
(1) 实现基于用户的访问控制
查看apache主配置文件httpd.conf,确认已经编译了基本认证和摘要认证的模块
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
(2) 修改主配置文件httpd.conf,实现对awstats目录区域的访问控制
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
authname "AWSTATS"
authtype basic
authuserfile /etc/httpd/conf/.htpasswd
require valid-user
</Directory>
(3) 创建存储认证用户帐号及口令文件
[root@www /]# useradd awuser
[root@www /]# htpasswd -c /etc/httpd/conf/.htpasswd awuser
(4) 重新启动httpd服务
service httpd restart
(5) 在客户端登陆测试
错误!超链接引用无效。