Apache的安装与使用


当时的实训内容,Apache复刻,操作主机为CentOS7


1. Apache环境依赖

  • 安装 apr
  • 安装 apr-util
  • 安装apr-iconv

环境:

#gcc编译环境 
yum -y install pcre-devel libxml2 expat-devel gcc-*

1.1 apr

APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的。

# 下载apr包
wget https://dlcdn.apache.org//apr/apr-1.7.0.tar.gz -- nocheck-certificate

# 解压
tar -zxvf apr-1.7.0.tar.gz
cd apr-1.7.0/

# 检查,只要没有 error 即可
./configure --prefix=/usr/local/apr

# 编译
make && make install

1.2 apr-util

Apache APR的数据结构和实用程序

# 下载apr-util包
wget https://dlcdn.apache.org//apr/apr-util-1.6.1.tar.gz -- no-check-certificate

# 解压
tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1/

# 检查,只要没有 error 即可
./configure --prefix=/usr/local/apr-util -- with-apr=/usr/local/apr/

# 编译
 make && make install

1.3 ARP-iconv

APR iconv提供了一个构建在APR之上的可移植iconv()实现。
例如,Windows平台需要APR iconv来启用APR util库的apr_u xlate功能。

# 下载
wget https://dlcdn.apache.org//apr/apr-iconv-1.2.2.tar.gz -- no-check-certificate

# 解压
tar -zxvf apr-iconv-1.2.2.tar.gz
cd apr-iconv-1.2.2/

# 检查,只要没有 error 即可
./configure --prefix=/usr/local/apr-iconv -- with-apr=/usr/local/apr

# make && make install
make && make install

# 确认文件完整
ls /usr/local/
apr apr-util etc include lib64 python3 share apr-iconv bin games lib libexec sbin src

2. 安装Apache

wget https://dlcdn.apache.org//httpd/httpd-2.4.51.tar.gz -- no-check-certificate

tar -zxvf httpd-2.4.51.tar.gz

cd httpd-2.4.51/

# 判断编译文件是否完整,执行结束后,没有出现error则完整
./configure --prefix=/usr/local/apache --enablempms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-aprutil=/usr/local/apr-util --enable-so --enable-remoteip --enable-proxy --enableproxy-fcgi --enable-proxy-uwsgi --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-cache --enable-file-cache -- enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-ab --disable-userdir --enable-nonportable-atomics --disable-ipv6 --with-sendfile

ps:这里我报了个错、error: mod_deflate has been requested but can not be built due to prerequisite failures

解决:

yum install zlib-devel

查看文件路径分布

yum -y install tree
tree -L 1 /usr/local/apache/

tree
├── bin 二进制命令
├── build
├── cgi-bin cgi 脚本目录
├── conf 配置文件目录
├── error 错误记录
├── htdocs 默认网站根目录
├── icons 小图标
├── include 一些C语言文件
├── logs 日志目录
├── man 帮助手册
├── manual 在线手册
└── modules 存放apache运行需要的模块

3. 启动Apache

关闭防火墙与SELinux

systemctl stop firewalld.service 
setenforce 0
# 测试Apache
./apachectl -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 
Syntax OK

# 启动Apache
./apachectl

# 测试服务
netstat -luntp | grep httpd
tcp6 0 0 :::80 :::* LISTEN 
67935/httpd

# 关闭服务
yum search killall
yum -y install psmisc.x86_64
killall httpd

此时,如果前面没任何错误,则能够直接访问默认页面

# 文本测试
yum -y install elinks
elinks http://localhost

4. 处理警告

cd /usr/local/apache/conf/ 
vim httpd.conf

配置服务名

../bin/apachectl 
vim httpd.conf

5. 虚拟主机

虚拟主机应用场景:一个WEB服务器同时发布多个WEB站点

  • 基于 IP 地址
  • 基于监听端口
  • 基于域名

5.1 基于ip

grep "Include" /usr/local/apache/conf/httpd.conf
# 去除本行的注释
#Include conf/extra/httpd-vhosts.conf

# 打开apache主配文件
vim /usr/local/apache/conf/httpd.conf

去除注释

(1)服务器多个ip

因为我用的是虚拟机,所以添加一张新网卡,虚拟机->设置->增加网络适配器
新增网卡
新增后,应该有两张网卡

dhclient 
ifconfig 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.241.134 netmask 255.255.255.0 broadcast 192.168.241.255 
eno33554984: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.241.158 netmask 255.255.255.0 broadcast 192.168.241.255

(2)创建两个web站点web1、web2

[root@localhost ~]# mkdir /usr/local/apache/htdocs/web{1..2}

(3)生成两个测试页面

echo qiye > /usr/local/apache/htdocs/web1/index.html 
echo qiye_isgood> /usr/local/apache/htdocs/web2/index.html

(4)设置子配置文件

vim /usr/local/apache/conf/extra/httpd-vhosts.conf

配置
ip地址和DocumentRoot都要改

(5)重启Apache

# 测试apache
/usr/local/apache/bin/apachectl -t
Syntax OK

# 先关了apache进程,在开启apache
killall httpd
/usr/local/apache/bin/apachectl

(6)测试

[root@localhost ~] elinks http://192.168.241.134 -dump
	qiye 
Segmentation fault (core dumped)

[root@localhost ~] elinks http://192.168.241.158 -dump
	qiye_isgood!
Segmentation fault (core dumped)

成功~~

5.2 基于端口

移除基于ip的配置

(1)修改子配置文件

vim /usr/local/apache/conf/extra/httpd-vhosts.conf

不同端口

(2)重启服务

/usr/local/apache/bin/apachectl -t
Syntax OK

killall httpd
/usr/local/apache/bin/apachectl

(3)测试

[root@localhost ~]# elinks http://localhost:80 -dump 
	qiye 
Segmentation fault (core dumped)

[root@localhost ~]# elinks http://localhost:81 -dump 
	qiye_isgood! 
Segmentation fault (core dumped)

5.3 基于域名

(1)本机做服务端和客户端,当前 IP 为 192.168.241.134,修改本机的 hosts 文件

vim /etc/hosts

不同域名

vim /usr/local/apache/conf/extra/httpd-vhosts.conf

如下图配置:
基于域名
(2)重启服务

/usr/local/apache/bin/apachectl -t
Syntax OK

killall httpd
/usr/local/apache/bin/apachectl

(3)测试

 [root@localhost ~]# /usr/local/apache/bin/apachectl 
 httpd (pid 5786) already running 
 [root@localhost ~]# elinks http://qiye.web1.com -dump 
 	qiye 
 Segmentation fault (core dumped) 
 [root@localhost ~]# elinks http://qiye.web2.com -dump 
 	qiye_isgood! 
 Segmentation fault (core dumped)

成功~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值