Apache的安装与使用

Apache的安装与使用,第1张

Apache的安装与使用

Apache
  • 1. Apache环境依赖
    • 1.1 apr
    • 1.2 apr-util
    • 1.3 ARP-iconv
  • 2. 安装Apache
  • 3. 启动Apache
  • 4. 处理警告
  • 5. 虚拟主机
    • 5.1 基于ip
      • (1)服务器多个ip
      • (2)创建两个web站点web1、web2
      • (3)生成两个测试页面
      • (4)设置子配置文件
      • (5)重启Apache
      • (6)测试
    • 5.2 基于端口
      • (1)修改子配置文件
      • (2)重启服务
      • (3)测试
    • 5.3 基于域名


当时的实训内容,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/


├── 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 mtu 1500 inet 192.168.241.134 netmask 255.255.255.0 broadcast 192.168.241.255 
eno33554984: flags=4163 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)

成功~~

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5682078.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存