Centos7下Apache服务的搭建与配置

1. 使用yum包安装Apache软件


[root@Apache ~]# yum -y install httpd*
[root@Apache ~]# rpm -qa | grep httpd     --查看安装的http包
httpd-manual-2.4.6-67.el7.centos.6.noarch
httpd-tools-2.4.6-67.el7.centos.6.x86_64
httpd-2.4.6-67.el7.centos.6.x86_64
httpd-devel-2.4.6-67.el7.centos.6.x86_64

安装成功后,会产生下面两个文件

/etc/httpd/conf/httpd.conf  # 主配置文件
/var/www/html                   # 默认网站家目录

2. 认识配置文件里的主要参数


[root@Apache ~]# vim /etc/httpd/conf/httpd.conf
 31 serverRoot "/etc/httpd"           # 存放配置文件的目录
 42 Listen 80           # Apache服务监听端口
 66 User apache     # 子进程的用户
 67 Group apache   # 子进程的组
 86 ServerAdmin root@localhost  # 设置管理员邮件地址
119 DocumentRoot "/var/www/html" --网站家目录
# 设置DocumentRoot指定目录的属性
131 <Directory "/var/www/html">   # 网站容器开始标识
144 Options Indexes FollowSymLinks   # 找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外
151 AllowOverride None                # none不使用.htaccess控制,all允许
156 Require all granted                 # granted表示运行所有访问,denied表示拒绝所有访问
157 </Directory>    # 容器结束
164 DirectoryIndex index.html       # 定义主页文件,当访问到网站目录时如果有定义的主页文件,网站会自动访问
316 AddDefaultCharset UTF-8      # 字符编码,如果中文的话,有可能需要改为gb2312或者gbk,因你的网站文件的默认编码而异

3. 启动Apache网站

[root@Apache ~]# systemctl start httpd.service
[root@Apache ~]# lsof -i:80         --查看httpd服务是否启动
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   20585   root    4u  IPv6 402909      0t0  TCP *:http (LISTEN)
httpd   20586 apache    4u  IPv6 402909      0t0  TCP *:http (LISTEN)
httpd   20587 apache    4u  IPv6 402909      0t0  TCP *:http (LISTEN)
httpd   20588 apache    4u  IPv6 402909      0t0  TCP *:http (LISTEN)
httpd   20589 apache    4u  IPv6 402909      0t0  TCP *:http (LISTEN)
httpd   20590 apache    4u  IPv6 402909      0t0  TCP *:http (LISTEN)

启动成功后使用浏览器:输入自己的IP地址会看到一个红帽的欢迎页面:

[root@Apache ~]# firefox 192.168.1.20

例1:建立网站主页,在网站根目录下建立一个主页文件
格式1:

[root@Apache ~]# echo 'main page' > /var/www/html/index.html   --往index.html添加内容
[root@Apache ~]#systemctl restart httpd.service      --重启服务
[root@Apache ~]# firefox http://192.168.1.20             --在浏览器进行测试,显示的信息为刚才我们输入的内容main page

格式2:

[root@Apache ~]# vim /var/www/html/index.html        --把主页文件写成html标签的格式,添加一下内容
<html>
<head>
<title>测试站点</title>
</head>
<body>
<center><h1>欢迎来到测试站点!@_@</h1></center>
</body>
</html>
[root@Apache ~]# systemctl restart httpd.service      --重启服务
[root@Apache ~]# firefox http://192.168.1.20             --在浏览器进行测试,显示的信息为刚才我们输入的内容main page

例2:将网站家目录修改成:/www目录

[root@Apache ~]# mkdir /www      --创建/www目录

[root@Apache ~]# vim /etc/httpd/conf/httpd.conf
119  DocumentRoot "/www"            --修改网站根目录为/www
131  <Directory "/www">               --把这个也对应的修改为/www

[root@Apache ~]# systemctl restart httpd.service      --重新启动apache服务

[root@Apache ~]# echo "这是新修改的网站家目录/www" > /www/index.html        --往index.html添加内容

[root@Apache ~]# firefox http://192.168.1.20            --访问网站,看到新网站根目录下的刚添加的信息

例3:修改主页类型或者主页名

[root@Apache ~]# vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex index.php              --将index.html改成index.php

[root@Apache ~]# systemctl reload httpd.service     --重新加载服务或重启

[root@Apache ~]# echo 'php main page' > /www/index.php      --这时我们创建一个index.php页面,再使用浏览器访问就能看到了

4. Apache配置虚拟主机

在一台Web服务器上,通过多个独立的IP地址、域名或端口号提供不同的Web站点。
基于IP地址的虚拟主机:
每个网站拥有不同的 IP 地址
通过访问服务器上不同的IP地址访问不同的网站
基于域名的虚拟主机:
所有的虚拟主机可以共享同一个IP地址
使用不同的域名来访问不同的网站
基于端口的虚拟主机:
所有的虚拟主机可以共享同一个IP地址
各虚拟主机之间通过不同的端口号进行区分

准备工作:

[root@Apache ~]# vim /usr/local/apache2/conf/htttpd.conf
  52 #Listen 80         # 将这行注释掉
220 #DocumentRoot "/usr/local/apache2/htdocs"        # 将这行注释掉

- Apache基于IP的虚拟主机配置

第一步:使用ifconfig设置3个虚拟ip

[root@Apache ~]# ifconfig ens33:1 192.168.1.11/24
[root@Apache ~]# ifconfig ens33:2 192.168.1.12/24
[root@Apache ~]# ifconfig ens33:3 192.168.1.13/24

[root@Apache ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe14:1fb9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)
        RX packets 216515  bytes 207352525 (197.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 109646  bytes 23077100 (22.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.11  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)

ens33:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.12  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)

ens33:3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.13  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:14:1f:b9  txqueuelen 1000  (Ethernet)

第二步:配置主机的hosts文件,便于测试

[root@Apache ~]# echo "192.168.1.11  test1.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.12  test2.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.13  test3.com" >> /etc/hosts

[root@Apache ~]# tail -3 /etc/hosts
192.168.1.11  test1.com
192.168.1.12  test2.com
192.168.1.13  test3.com

第三步:建立虚拟主机存放网页的根目录,并创建首页文件index.htm

[root@Apache ~]# cd /www
[root@Apache ~]# mkdir 11
[root@Apache ~]# mkdir 12
[root@Apache ~]# mkdir 13
[root@Apache ~]# echo "192.168.1.11" > 11/index.html
[root@Apache ~]# echo "192.168.1.12" > 12/index.html
[root@Apache ~]# echo "192.168.1.13" > 13/index.html

第四步:修改httpd.conf在文件末尾加入以下配置

[root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf    --文件末尾加入以下配置
Listen 192.168.1.11:80
Listen 192.168.1.12:80
Listen 192.168.1.13:80
Include conf/vhost/*.conf            # 文件包含vhost目录下所有以.conf结尾的文件

第五步:编辑每个ip的配置文件

[root@Apache ~]# mkdir  /usr/local/apache2/conf/vhost
[root@Apache ~]# cd /usr/local/apache2/conf/vhost
[root@Apache ~]# vim test11.conf        --一定要以.conf为后缀,这是第一台机器
<VirtualHost 192.168.1.11:80>
      ServerName test11.com
    DocumentRoot /www/11
      <Directory "/www/11/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

参数介绍:

虚拟主机配置格式:
<VirtualHost 主机ip:端口>
配置内容
</VirtualHost>

指定虚拟主机使用的域名
ServerName 域名

指定虚拟主机的主目录
DocumentRoot 目录

虚拟目录的格式:
<Directory 目录的路径>
目录相关的配置参数和指令
</Directory>

Options Indexes FollowSymLinks --找不到主页时,以目录的方式呈现,并允许链接到网站根目录以外

是否允许.htaccess文件覆盖httpd.conf文件中关于虚拟主机目录的配置。
AllowOverride None # 不使用
AllowOverride all # 使用

允许、拒绝所有访问指令
Require all granted # 允许
Require all denied # 拒绝
[root@Apache ~]# vim test12.conf          --这是第二台机器
<VirtualHost 192.168.1.12:80>
      ServerName test12.com
    DocumentRoot "/www/12"
      <Directory "/www/12/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim test13.conf          --这是第三台机器
<VirtualHost 192.168.1.13:80>
      ServerName test13.com
    DocumentRoot "/www/13"
      <Directory "/www/13/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

第六步:启动服务并测试

[root@Apache ~]# /usr/local/apache2/bin/apachectl -t        --检查配置文件是否正确
Syntax OK
[root@Apache ~]# /usr/local/apache2/bin/apachectl restart    --重新启动Apache
检查虚拟主机是否运行
[root@Apache ~]# curl 192.168.1.11
192.168.1.11
[root@Apache ~]# curl 192.168.1.12
192.168.1.12
[root@Apache ~]# curl 192.168.1.13
192.168.1.13

- Apache基于端口的虚拟主机配置

第一步:使用ifconfig设置1个虚拟ip

[root@Apache ~]# ifconfig ens33:4 192.168.1.14/24

第二步:配置主机的hosts文件,便于测试

[root@Apache ~]# echo "192.168.1.14  test4.com" >> /etc/hosts

第三步:建立虚拟主机存放网页的根目录,并创建首页文件index.html

[root@Apache ~]# cd /www
[root@Apache ~]# mkdir port
[root@Apache ~]# cd port
[root@Apache ~]# mkdir 6081
[root@Apache ~]# mkdir 7081
[root@Apache ~]# mkdir 9081
[root@Apache ~]# echo "port 6081" > 6081/index.html
[root@Apache ~]# echo "port 7081" > 7081/index.html
[root@Apache ~]# echo "port 9081" > 9081/index.html

第四步:修改httpd.conf在文件末尾加入以下配置

[root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf      --文件末尾加入以下配置
Listen 192.168.1.14:6081
Listen 192.168.1.14:7081
Listen 192.168.1.14:9081
Include conf/vhost/*.conf

第五步:编辑每个端口的配置文件

[root@Apache ~]# cd /usr/local/apache2/conf/vhost
[root@Apache ~]# vim test14.6081.conf       --一定要以.conf为后缀,这是第一台机器
<VirtualHost 192.168.1.14:6081>
      ServerName test14.com
    DocumentRoot "/www/port/6081"
      <Directory "/www/port/6081/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim test14.7081.conf          --这是第二台机器
<VirtualHost 192.168.1.14:7081>
      ServerName test14.com
    DocumentRoot "/www/port/7081"
      <Directory "/www/port/7081/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim test14.9081.conf          --这是第三台机器
<VirtualHost 192.168.1.14:9081>
      ServerName test14.com
     DocumentRoot "/www/port/9081"
      <Directory "/data/port/9081/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

第六步:启动服务并测试

[root@Apache ~]# /usr/local/apache2/bin/apachectl -t              --检查配置文件是否正确
Syntax OK
[root@Apache ~]# /usr/local/apache2/bin/apachectl restart    --重新启动apache
检查虚拟主机是否运行
[root@Apache ~]# curl 192.168.1.14:6081
port 6081
[root@Apache ~]# curl 192.168.1.14:7081
port 7081
[root@Apache ~]# curl 192.168.1.14:9081
port 9081

- Apache基于域名的虚拟主机配置

第一步:使用ifconfig设置1个虚拟ip

root@Apache ~]# ifconfig ens33:5 192.168.1.15/24

第二步:配置主机的hosts文件,便于测试

[root@Apache ~]# echo "192.168.1.15  www.aa.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.15  www.bb.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.1.15  www.cc.com" >> /etc/hosts

第三步:建立虚拟主机存放网页的根目录,并创建首页文件index.html

[root@Apache ~]# cd /www
[root@Apache ~]# mkdir www.aa.com
[root@Apache ~]# mkdir www.bb.com
[root@Apache ~]# mkdir www.cc.com
[root@Apache ~]# echo "www.aa.com" > www.aa.com/index.html
[root@Apache ~]# echo "www.bb.com" > www.bb.com/index.html
[root@Apache ~]# echo "www.cc.com" > www.cc.com/index.html

第四步:修改httpd.conf在文件末尾加入以下配置

[root@Apache ~]# vim /usr/local/apache2/conf/httpd.conf      --文件末尾加入以下配置
Listen 192.168.1.15:80
Include conf/vhost/*.conf

第五步:编辑每个域名的配置文件

[root@Apache ~]# cd /usr/local/apache2/conf/vhost
[root@Apache ~]# vim www.aa.com.conf        --一定要以.conf为后缀,这是第一台机器
<VirtualHost 192.168.1.15:80>
      ServerName www.aa.com
    DocumentRoot "/www/www.aa.com"
      <Directory "/www/www.aa.com/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim www.bb.com.conf          --这是第二台机器
<VirtualHost 192.168.1.15:80>
      ServerName www.bb.com
    DocumentRoot "/www/www.bb.com"
      <Directory "/www/www.bb.com/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@Apache ~]# vim www.cc.com.conf          --这是第三台机器
<VirtualHost 192.168.1.15:80>
      ServerName www.cc.com
    DocumentRoot "/www/www.cc.com"
      <Directory "/www/www.cc.com/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

第六步:启动服务并测试

[root@Apache ~]# /usr/local/apache2/bin/apachectl -t              --检查配置文件是否正确
Syntax OK
[root@Apache ~]# /usr/local/apache2/bin/apachectl restart    --重新启动apache
检查虚拟主机是否运行
[root@Apache ~]# curl www.aa.com
www.aa.com
[root@Apache ~]# curl www.bb.com
www.bb.com
[root@Apache ~]# curl www.cc.com
www.cc.com
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值