设为首页 收藏本站
查看: 592|回复: 0

[经验分享] redhat or centos rpm包搭建apache

[复制链接]

尚未签到

发表于 2018-11-24 11:50:14 | 显示全部楼层 |阅读模式
  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的相关操作#####################

基于客户端地址的访问控制

deny from [address1] [address2]…… 拒绝哪些地址
allow from [address1] [address2]…… 允许哪些地址
order allow,deny: 先允许后拒绝,默认拒绝所有未明确允许的客户端地址
order deny,allow: 先拒绝后允许,默认允许所有未明确允许的客户端地址



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

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

Alias /test02 "/data/web/test02/"

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

####加入这些然后保存退出

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

    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    AuthType basic
    AuthName "welcome test"
    AuthUserFile /etc/httpd/httppwd
    Require user test test01

Alias /test02 "/data/web/test02/"

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

######保存退出
命令的解释
    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/"

    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    AuthType basic
    AuthName "welcome admin"
    AuthUserFile /etc/httpd/httppwd
    AuthGroupFile /etc/httpd/httpgrp
    Require group admin

Alias /test02 "/data/web/test02/"

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

########然后保存退出


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  (新建一个虚拟主机目录的配置文件,这里也一样)

#####

    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



    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

#####保存退出
参数的解释:
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

    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



    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

#####保存退出
重启服务开始测试(这个其它的步骤和不同ip的一样,就是改一下配置文件)

(iii)同ip同端口不同域名

vim /etc/httpd/virtualhost/virtualhost.conf  (新建一个虚拟主机目录的配置文件,这里也一样)

#####


    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



    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

#####保存退出
如果临时的不能搭建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表示时间







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-639003-1-1.html 上篇帖子: Apache和Tomcat的区别与联系 下篇帖子: 源码包搭建apache(2.4.x)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表