首页 > 代码库 > Llinux-apache安装

Llinux-apache安装

第四章  构建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/

http://192.168.100.4/

 

 

 

********实现基于端口的虚拟主机********

(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/

http://192.168.100.2:82/

 

 

 

********实现基于域名的虚拟主机********

(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/

http://www.btest.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

 

----定义日志分析的目标站点的名称

  www.benet.com

 

----定义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) 在客户端登陆测试

错误!超链接引用无效。