LINUX中搭建HTTP服务器

 在LINUX系统中安装Apache做为HTTP的服务程序,通过设置配置文件,可以实现很多功能,如访问控制,虚似主机,基于域名的虚拟主机,通过安装Awstats我们可以更方便的统计Http访问日志

 

实验拓扑:

                                    Linux Client

-----RHEL5.9(vmnet1)----------(vmnet1)

                                      Win7 Client

 

实验一:查看默认HTTP配置

     找到默认红帽欢迎页面

(/etc/httpd/conf/httpd.conf ---->Include ----> /etc/httpd/conf.d  ----> welcome.conf  ----> /var/www/error/noindex.html)

前提条件:

1、配置IP

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

HWADDR=00:0c:29:5d:a8:80

IPADDR=192.168.10.253

NETMASK=255.255.255.0

2、配置主机名

[root@localhost ~]# cat /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=yes

HOSTNAME=web01.tarena.com

3、修改hosts文件

[root@localhost ~]# cat /etc/hosts

127.0.0.1               localhost.localdomain localhost

::1             localhost6.localdomain6 localhost6

192.168.10.253  web01.tarena.com        web01

[root@localhost ~]# service network restart

[root@localhost ~]# chkconfig network on

4、软件包的安装

[root@localhost ~]# rpm -q httpd

package httpd is not installed

[root@localhost ~]# yum -y install httpd

5、启动服务

[root@localhost ~]# service httpd restart

[root@localhost ~]# chkconfig httpd on

 

试验二:基本HTTP服务器的配置

     Web服务器域名:www.tarena.com

     默认首页包括:index.html、index.php

     开启保持连接

     确认默认httpd是否支持php    

     网站用老师提供的test_web.zip测试

 

服务器操作:

1、备份主配置文件

[root@localhost ~]# cd /etc/httpd/conf

[root@localhost conf]# cp httpd.conf httpd.conf.bak

2、修改主配置文件

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

...

 74 KeepAlive On

...

265 ServerName www.tarena.com:80

...

391 DirectoryIndex index.html index.php

...

3、启动服务

[root@localhost ~]# service httpd restart

[root@localhost ~]# chkconfig httpd on

[root@localhost ~]# cd /root/Desktop/

[root@localhost Desktop]# unzip test_web.zip

[root@localhost Desktop]# mv jiajutiyan/* /var/www/html/

4、编写测试php页面

[root@localhost ~]# cat /var/www/html/test.php

<?php

        phpinfo();

?>

测试:

1、在客户端hosts文件指定

192.168.10.253         www.tarena.comwww

2、打开浏览器

http://www.tarena.com

http://www.tarena.com/test.php

 

.

3、新建authdir站点,只允许192.168.1.251访问www.tarena.com,允许所有人访问www.tarena.com/authdir

[root@web01 ~]# mkdir /var/www/html/authdir

[root@web01 ~]# echo "http://www.tarena.com/authdir/index.html" >  /var/www/html/authdir/index.html

[root@web01 ~]# vim /etc/httpd/conf/httpd.conf

...

337 <Directory /var/www/html/authdir>

338         Order allow,deny

339         Allow from all

340 </Directory>

[root@localhost ~]# service httpd restart

在不同客户端测试

[root@localhost ~]# tail /var/log/httpd/error_log

 

试验四:HTTP的用户授权

     客户端访问http://www.tarena.com/authdir需要输入用户名密码验证

 

1、修改主配置文件

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

...

337 <Directory "/var/www/html/authdir">

338         Order allow,deny

339         Allow from all

340         AuthName "Please Input Password!!"

341         AuthType Basic

342         AuthUserFile "/etc/httpd/.vuser"

343         Require valid-user

344 </Directory>

...

2、创建账户密码

[root@localhost ~]# htpasswd -c /etc/httpd/.vuser admin

New password:

Re-type new password:

Adding password for user admin

3、启动服务测试

[root@localhost ~]# service httpd restart

http://www.tarena.com/authdir

实验五:HTTP目录别名

     客户端访问http://www.tarena.com/sina时可以访问/var/www/html/sina.com/bbs下的网页

1、创建测试站点

[root@localhost ~]# mkdir -p /var/www/html/sina.com/bbs

[root@localhost ~]# cat /var/www/html/sina.com/bbs/index.html

<html>

<head><title>This is a test Page!!!</title></head>

<body>

<h1>This is bbs.sina.com test Page!!!</h1>

</body>

</html>

2、修改主配置文件

[root@localhost ~]# tail -n 1 /etc/httpd/conf/httpd.conf

Alias /sina     "/var/www/html/sina.com/bbs"

3、启动服务测试

[root@ser1 ~]# service httpd restart

http://www.tarena.com/sina

实验六:

     查看默认HTTP使用进程管理方式

     更改默认进程管理方式为worker模式

[root@localhost ~]# httpd -l

Compiled in modules:                                   

  core.c

  prefork.c

  http_core.c

  mod_so.c

[root@localhost ~]# cd /usr/sbin/

[root@localhost sbin]# mv httpd httpd.prefork

[root@localhost sbin]# mv httpd.worker httpd

[root@localhost sbin]# service httpd restart

[root@localhost sbin]# httpd -l

Compiled in modules:

  core.c

  worker.c

  http_core.c

  mod_so.c

试验七:

     部署Awstats统计Http访问日志

1、安装软件(软件在/usr/src下)

[root@localhost ~]# cd /usr/src/

[root@localhost src]# tar -zxvf awstats-7.1.tar.gz -C /usr/local/

[root@localhost src]# cd /usr/local/

[root@localhost local]# mv awstats-7.1/ awstats

[root@localhost local]# cd awstats/tools/

[root@localhost tools]# ./awstats_configure.pl

...

Config file path ('none' to skip web server setup):

> /etc/httpd/conf/httpd.conf    //输入apache的主配置文件

...

-----> Need to create a new config file ?

Do you want me to build a new AWStats config/profile

file (required if first install) [y/N] ? y   //生成awstats的配置文件

...

Your web site, virtual server or profile name:

> www.tarena.com            //输入你的web服务器名字

...

Default: /etc/awstats

Directory path to store config file(s) (Enter for default):

>

...

/usr/local/awstats/tools/awstats_updateall.pl now

Press ENTER to continue...

...

Press ENTER to finish...

2、修改主配置文件

[root@localhost tools]# vim /etc/awstats/awstats.www.tarena.com.conf

...

  51 LogFile="/var/log/httpd/access_log"

[root@localhost tools]# mkdir /var/lib/awstats

3、将日志文件导入Awstats

[root@localhost tools]# ./awstats_updateall.pl now

[root@localhost tools]# crontab -l

*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

[root@localhost tools]# service crond restart

[root@localhost tools]# chkconfig crond on

4、验证:

http://www.tarena.com/awstats/awstats.pl?config=www.tarena.com

补充:

通过html代码实现网页跳转功能

[root@localhost tools]# cat /var/www/html/awstats.html

<html>

<head><meta http-equiv=refresh content="0;  url=http://www.tarena.com/awstats/awstats.pl? config=www.tarena.com">

</head>

<body>

</body>

</html>

验证:

http://www.tarena.com/awstats.html 

 

实验八:基于域名的虚拟主机

     www.sina.com     192.168.10.253    sina网站

     www.sohu.com    192.168.10.253    sohu网站

1、修改主配置文件

新建一个配置文件(虚似主机配置专用)

[root@localhost ~]# vim /etc/httpd/conf.d/virt.conf

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www/sina

ServerName www.sina.com

ErrorLog logs/www.sina.com-error_log

CustomLog logs/www.sina.com-access_log common

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/sohu

ServerName www.sohu.com

ErrorLog logs/www.sohu.com-error_log

CustomLog logs/www.sohu.com-access_log common

</VirtualHost>

创建网站目录和文件

[root@localhost ~]# mkdir /var/www/{sina,sohu}

[root@localhost ~]# cat /var/www/sina/index.html

<h1>www.sina.com</h1>

[root@localhost ~]# cat /var/www/sohu/index.html

<h1>www.sohu.com</h1>

[root@localhost ~]# servicehttpd restart

验证:

先在客户端修改hosts文件

192.168.10.253         www.sina.com

192.168.10.253         www.sohu.com

 

实验九:基于端口的虚拟主机

     192.168.10.253:8081              sina网站

     192.168.10.253:8082              sohu网站

2、修改主配置文件

新建一个配置文件(虚似主机配置专用)

[root@localhost ~]# vim /etc/httpd/conf.d/virt.conf

Listen 8081                                             //激活端口

Listen 8082

<VirtualHost *:8081>

DocumentRoot /var/www/sina

ServerName 192.168.10.253

ErrorLog logs/www.sina.com-error_log

CustomLog logs/www.sina.com-access_log common

</VirtualHost>

<VirtualHost *:8082>

DocumentRoot /var/www/sohu

ServerName 192.168.10.253

ErrorLog logs/www.sohu.com-error_log

CustomLog logs/www.sohu.com-access_log common

</VirtualHost>

2、启动服务

[root@localhost ~]# servicehttpd restart

 

 

实验十:配置HTTP支持php

1、安装php

[root@localhost ~]# yum -y install php

[root@localhost ~]# cat /var/www/sina/test.php

<?php                                              //PHP测试页

phpinfo();

?>

[root@localhost ~]# servicehttpd restart

测试:

http://192.168.10.253:8081/test.php