redhat or centos rpm包搭建apache

                               apache(又称httpd)

  Apache是Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
 
apache的搭建:
 
用rpm包搭建
a)
先挂载光盘
mount /dev/cdrom /media/
 
b)
进入你的光盘文件中  
cd /media/Server/(5.x的是/media/Server/,6.x的是/media/Packages)
rpm -ivh httpd-tools-2.2.15-15.el6.centos.1.i686            (apache的工具包)
rpm -ivh httpd-manual-2.2.15-15.el6.centos.1.noarch         (apache的帮助手册文档)
rpm -ivh httpd-devel-2.2.15-15.el6.centos.1.i686            (apache的开发工具包)    
rpm -ivh httpd-2.2.15-15.el6.centos.1.i686                  (apache的程序软件包)
自己解决依赖性包
 
or(或者自己搭建yum了用yum安装)
 
yum -y install httpd* (这样也会安装这个四个包)
 
 
c)
rpm包安装完成后,了解apache服务器相关的主要目录和文件
 
/etc/httpd                                (apache服务器的根目录)
/etc/httpd/conf/httpd.conf/               (apache服务器的主配置文件)
/var/www/html/                            (网页文档的默认的根目录)
/etc/init.d/httpd                         (apache服务的控制脚本文件)
/usr/sbin/httpd                           (apache服务的主要执行程序)
/var/log/httpd/access_log                 (访问日志文件)
/var/log/httpd/error_log                  (错误的日志文件 )
/etc/httpd/logs/error_log                 (日志文件,服务开启不了就查看日志)
 
d)
搭建完成后开启服务
[root@Centos httpd]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for Centos
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
第一次启动的时候,会提示这样的信息,不过这样apache也是开启了,改一下配置文件就可以不提示上面的信息了。
 
e)
vim /etc/httpd/conf/httpd.conf
 
###添加这句(直接copy)
ServerName 192.168.4.184:80 
###保存退出
ServerName 192.168.4.184:80 (有域名就写域名ServerName www.abc.com:80)
在重启服务就不会提示上面的信息了。
[root@Centos httpd]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
重启之后就测试一下看apache能不能正常访问
可以先在你搭建的服务器上关闭防火墙和selinux
iptables -F  (关闭防火墙)
setenforce 0 (关闭selinux)
用IE浏览器直接测试 http://ip(域名)测试能访问
 
基本的已经搭建完成了
 
#####################apache的相关操作#####################
 
基于客户端地址的访问控制
<directory>
deny from [address1] [address2]…… 拒绝哪些地址
allow from [address1] [address2]…… 允许哪些地址
order allow,deny: 先允许后拒绝,默认拒绝所有未明确允许的客户端地址
order deny,allow: 先拒绝后允许,默认允许所有未明确允许的客户端地址
</directory>
 
 
1、httpd的虚拟目录(可以做不同的网页)
虚拟目录的优点,虚拟目录只是一个链接,所以易于移动和扩充
 
a)先建立虚拟目录
mkdir -p /data/web  (这个data目录你可以是一个很大的硬盘挂载过来的,-p是递归的建立)
mkdir -p /data/web/test01  (建立两个虚拟目录一个是test01,一个是test02)
mkdir -p /data/web/test02  
b)在httpd配置文件中,加入虚拟目录所需的配置
vim /etc/httpd/conf/httpd.conf 
 
#####添加这句
Include vhost/vhost.conf
#####然后保存退出
 
c)新建配置文件里面加入的目录和文件
mkdir /etc/httpd/vhost
touch /etc/httpd/vhost/vhost.conf
 
d)修改虚拟目录的配置文件
vim /etc/httpd/vhost/vhost.conf
 
######添加如下几行
Alias /test01 "/data/web/test01/"
<Directory "/data/web/test01">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Alias /test02 "/data/web/test02/"
<Directory "/data/web/test02">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
####加入这些然后保存退出
 
e)为test01和test02建立两个网页文件来测试一下
echo "this is test01 website welcome" >> /data/web/test01/index.html
echo "this is test02 website welcome" >> /data/web/test02/index.html
然后用浏览器来测试一下
http://192.168.4.184/test01(输入这里之后直接回车,因为我们定义别名的时候没加/)
   显示this is test01 webiste welcome
http://192.168.4.184/test02
  显示this is test02 website welcome
则httpd的虚拟目录ok了。
 
 
2、认证和授权
(i)、对用户设置认证和授权
a)修改虚拟目录的配置文件
vim /etc/httpd/vhost/vhost.conf
修改虚拟目录的配置文件,让访问test01时,需要进行授权认证才能访问
 
#####
Alias /test01 "/data/web/test01/"
<Directory "/data/web/test01">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    AuthType basic
    AuthName "welcome test"
    AuthUserFile /etc/httpd/httppwd
    Require user test test01
</Directory>
Alias /test02 "/data/web/test02/"
<Directory "/data/web/test02">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
######保存退出
命令的解释
    AuthType basic                      (basic认证)
    AuthName "welcome test"              (认证提示的名字)
   AuthUserFile /etc/httpd/httppwd     (认证的文件)
    require user test test01         (允许的用户名)
 
 
重启httpd
 
然后用IE测试:http://192.168.4.184/test01
需要输入用户名和密码才能访问
 
b)为test用户建立密码,能访问test01这个目录的密码
[root@Centos httpd]# pwd
/etc/httpd  在这个目录下
[root@Centos httpd]# htpasswd -c httppwd test(添加第一个用户)
New password: 
Re-type new password:  
 
htpasswd  httppwd test01(添加第二个,或者多个的时候都不需要-c了)
需要在这个里面添加多个
vim /etc/httpd/vhost/vhost.conf
#####
require user test test01(依次在后面添加就可以了)
 
然后重启httpd服务
 
(ii)、对组设置认证和授权
cd ../
vim /etc/httpd/vhost/vhost.conf
修改虚拟目录的配置文件,让访问test01时,需要进行授权认证才能访问
 
########
Alias /test01 "/data/web/test01/"
<Directory "/data/web/test01">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    AuthType basic
    AuthName "welcome admin"
    AuthUserFile /etc/httpd/httppwd
    AuthGroupFile /etc/httpd/httpgrp
    Require group admin
</Directory>
Alias /test02 "/data/web/test02/"
<Directory "/data/web/test02">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
########然后保存退出
 
 
vim /etc/httpd/httpgrp
###
admin:test test01(需要加入直接玩后面添加)
####然后保存退出
 
[root@Centos httpd]# pwd
/etc/httpd在这个目录下面
htpasswd httppwd test
htpasswd httppwd test01
 
然后重启服务
service httpd restart
 
然后用IE测试:http://192.168.4.184/test01
需要输入用户名和密码才能访问,这里的用户名必须是能让组访问的里面
 
 
 
3、虚拟主机
 
(i)、不同ip,同一个域名,同端口
a)修改apache的配置文件
vim /etc/httpd/conf/httpd.conf 
 
####
Include vhost/vhost.conf  (这句是建立虚拟目录的时候添加的,这个不注释是有区别的)
Include virtualhost/virtualhost.conf (这句是新添加的)
#####这里不注释,然后保存退出
 
b)新建虚拟主机的目录和配置文件                                    
mkdir -p /etc/httpd/virtualhost (新建一个虚拟主机的目录,这里对应httpd配置文件里面的Include内容)
 
vim /etc/httpd/virtualhost/virtualhost.conf  (新建一个虚拟主机目录的配置文件,这里也一样)
 
#####
<VirtualHost 192.168.4.1:80>
    ServerAdmin webmaster@dummy-host.example.com   
    DocumentRoot /data/web/test01  
    ServerName dummy-host.example.com 
    ErrorLog     /data/log/test01.error_log           
    CustomLog  /data/log/test01.access_log combined
</VirtualHost>
 
<VirtualHost 192.168.4.2:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/web/test02
    ServerName dummy-host.example.com 
    ErrorLog     /data/log/test02.error_log           
    CustomLog  /data/log/test02.access_log combined
</VirtualHost>
#####保存退出
参数的解释:
ServerAdmin webmaster@dummy-host.example.com   
(这个可以随便写)
DocumentRoot /data/web/test01  
(这个是存放网页文件的目录)
ServerName dummy-host.example.com            
(这个是写域名的,有自己的域名,就写自己的域名,没有域名随便写了也不要紧,因为我们用ip访问)
CustomLog  /data/log/virtualhost/access_log combined
用于设置httpd服务器访问日志文件的路径和格式类型,这个文件里面写入这你登录的记录
ErrorLog     /data/log/error_log
用于设置错误日志文件的路径和文件名(如果你设置了,那这个目录和文件必须存在,木有就新建)这个文件
写入的是,你登录错误的记录
 
c)现在新建虚拟主机配置文件里面指定的目录,因为没有,那就要新建
mkdir -p /data/log/ (ErrorLog 和CustomLog指定的路径)
cd /data/log/ 
touch test01.error_log test01.access_log  test02.error_log test02.access_log 
 
然后重启服务 service httpd restart
 
d)模拟ip出来
ifconfig eth0:0 192.168.4.1 up
ifconfig eth0:1 192.168.4.2 up
虚拟两个ip出来,实际环境服务器最好用真实的网卡,这个只是临时模拟的,当网卡重启之后
虚拟的网卡就木有了,如果想reboot之后都存在,那就把网卡写到配置文件里面去
 
测试:当你用浏览器访问
http://192.168.4.1的时候其实是访问之前做的虚拟目录的test01里面的网页文件
这个时候是需要输入用户名和密码的,因为之前对test01做了认证授权
Include vhost/vhost.conf  httpd的配置文件这个木有注释掉,这个虚拟目录对test01里面的网页文件
是有认证和授权的
http://192.168.4.2这个可以直接访问
 
(ii)同ip不同端口号
vim /etc/httpd/virtualhost/virtualhost.conf  
 
#####
Listen 80
Listen 8080
<VirtualHost 192.168.4.1:80>
    ServerAdmin webmaster@dummy-host.example.com   
    DocumentRoot /data/web/test01  
    ServerName dummy-host.example.com 
    ErrorLog     /data/log/test01.error_log           
    CustomLog  /data/log/test01.access_log combined
</VirtualHost>
 
<VirtualHost 192.168.4.1:8080>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/web/test02
    ServerName dummy-host.example.com 
    ErrorLog     /data/log/test02.error_log           
    CustomLog  /data/log/test02.access_log combined
</VirtualHost>
#####保存退出
重启服务开始测试(这个其它的步骤和不同ip的一样,就是改一下配置文件)
 
(iii)同ip同端口不同域名
 
vim /etc/httpd/virtualhost/virtualhost.conf  (新建一个虚拟主机目录的配置文件,这里也一样)
 
#####
 
<VirtualHost 192.168.4.1:80>
    ServerAdmin webmaster@dummy-host.example.com   
    DocumentRoot /data/web/test01  
    ServerName   www.abc.com 
    ErrorLog     /data/log/test01.error_log           
    CustomLog  /data/log/test01.access_log combined
</VirtualHost>
 
<VirtualHost 192.168.4.1:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/web/test02
    ServerName   www.xyz.com
    ErrorLog     /data/log/test02.error_log           
    CustomLog  /data/log/test02.access_log combined
</VirtualHost>
#####保存退出
如果临时的不能搭建dns,可以用host文件代替
vim /etc/hosts
192.168.4.1  www.abc.com
192.168.4.1  www.xyz.com
 
重启服务开始测试(这个其它的步骤和不同ip的一样,就是改一下配置文件)
 
 
 
 
站点压力测评
 
tar  zcvf  webbench-
make  && make install
 
测试
webbench -c 500 -t 30 http://ip/test.php
-c表示并发数 -t表示时间









本文转自 jie783213507 51CTO博客,原文链接:http://blog.51cto.com/litaotao/1186911,如需转载请自行联系原作者
上一篇:【sublime Text】关闭sublime的更新提醒和激活提醒


下一篇:Java修饰符关键词大全