Apache WEB 服务器企业实战_fatal error apr_escape(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

make
编译
make install
安装

Apache2.2.32 安装完毕,如图 10-1 所示
在这里插入图片描述
在这里插入图片描述
启动 Apache 服务,临时关闭 selinux、firewalld 防火墙

/usr/local/apache2/bin/apachectl start
setenforce 0
systemctl stop firewalld.servic

查看 Apache 服务进程,通过客户端浏览器访问 http://192.168.111.131/,如图
10-2(a)、10-2(b)所示
在这里插入图片描述

Apache 虚拟主机企业应用

企业真实环境中,一台 WEB 服务器发布单个网站会非常浪费资源,所以一台
WEB 服务器上会发布多个网站,少则 3-5 个,多则 2-30 个网站。
在一台服务器上发布多网站,也称之为部署多个虚拟主机,WEB 虚拟主机配置方法
有三种:
 基于单 IP 多个 Socket 端口;
 基于多 IP 地址一个端口;
 基于单 IP 一个端口不同域名。
其中基于同一端口不同域名的方式在企业中得到广泛的使用和应用,如下为基于一
个端口不同域名,在一台 Apache WEB 服务器上部署多个网站,步骤如下:
(1) 创建虚拟主机配置文件 httpd-vhosts.conf,该文件默认已存在,只需去掉
httpd.conf 配置文件中#号即可,如图 10-3 所示

#vi /usr/local/apache2/conf/httpd.conf

Virtual hosts

Include conf/extra/httpd-vhosts.conf

在这里插入图片描述
(2) 配置文件/usr/local/apache2/conf/extra/httpd-vhosts.conf 中代码设置为
如下:

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin jfedu@jfedu.net
DocumentRoot “/usr/local/apache2/htdocs/www.jfedu1.com”
ServerName www.jfedu1.com
ErrorLog “logs/www.jfedu1.com/error_log”
CustomLog “logs/www.jfedu1.com/access_log” common

<VirtualHost *:80>
ServerAdmin jfedu@jfedu.net
DocumentRoot “/usr/local/apache2/htdocs/www.jfedu2.com”
ServerName www.jfedu2.com
ErrorLog “logs/www.jfedu2.com/error_log”
CustomLog “logs/www.jfedu2.com/access_log” common

Httpd-vhosts.conf 参数详解:

NameVirtualHost *:80 开启虚拟主机,并且监
听本地所有网卡接口的 80 端口;
<VirtualHost *:80> 虚拟主机配置起始;
ServerAdmin support@jfedu.net 管理员邮箱;
DocumentRoot “/usr/local/apache2/htdocs/jf1” 该虚拟主机发布目录;
ServerName www.jf1.com 虚拟主机完整域名;
ErrorLog “logs/www.jf1.com_error_log” 错误日志路径及文件
名;
CustomLog “logs/www.jf1.com_access_log” common 访问日志路径及文件
名;
虚拟主机配置结束。

在这里插入图片描述
(3) 创建 www.jf1.com 及 www.jf2.com 发布目录,重启 apache 服务,并分别创
建 index.html 页面

#mkdir -p /usr/local/apache2/htdocs/{jf1,jf2}/
#/usr/local/apache2/bin/apachectl restart
echo “

www.jf1.com
Pages

” >/usr/local/apache2/htdocs/jf1/index.html
echo “

www.jf2.com
Pages

” >/usr/local/apache2/htdocs/jf2/index.htm

或者
在这里插入图片描述
创建虚拟主机里面对应项目的日志文件

#mkdir -p /usr/local/apache2/logs/www.jfedu.com
#mkdir -p /usr/local/apache2/logs/www.jfedu1.com
#mkdir -p /usr/local/apache2/logs/www.jfedu2.com

在这里插入图片描述

#cp index.html /www.jfedu.com/
#cp index.html /www.jfedu1.com/
#cp index.html /www.jfedu2.com/

www.jfedu.com# vi index.html

www.jfedu.com

www.jfedu1.com# vi index.html

www.jfedu1.com

www.jfedu2.com# vi index.html

www.jfedu2.com

在这里插入图片描述
检测配置是否有误

/usr/local/apache2/bin/apachectl -t

/usr/local/apache2/bin/apachectl graceful

/usr/local/apache2/bin/apachectl start

#netstat -lantp |grep 80

在这里插入图片描述
在这里插入图片描述
提示 : httpd.conf配置文件里面ServerName没有www.jfedu.com、www.jfedu.com1、www.jfedu.com2对应的主机名

ServerName localhost

在这里插入图片描述
在这里插入图片描述

(4) Windows 客户端设置 Hosts 映射,将 www.jf1.com、www.jf2.com 与
192.168.111.131 IP 进行映射绑定,映射的目的将域名跟 IP 进行绑定,在浏览器可以输入域名,不需要输入 IP 地址,绑定方法是在
“C:\Windows\System32\drivers\etc”文件夹中,使用记事本编辑 hosts 文件,
加入如下代码,如图 10-4 所示

192.168.111.131 www.jfedu.com
192.168.111.131 www.jfedu1.com
192.168.111.131 www.jfedu2.com

在这里插入图片描述
在这里插入图片描述
(5) 浏览器访问 www.jf1.com、www.jf2.com 如图 10-5(a)、10-5(b)所示,
至此 Apache 基于多域名虚拟主机配置完毕,如果还需添加虚拟主机,直接拷贝其
中一个虚拟主机配置、修改 WEB 发布目录即可:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Apache 常用目录学习

Apache 可以基于源码安装、YUM 安装,不同的安装方法,所属的路径特不同,如下为
Apache 常用路径的功能用途:

/usr/lib64/httpd/modules/ Apache 模块存放路径;
/var/www/html/ YUM 安装 Apache 网站发布目录;

/var/www/error/ 服务器设置错误信息,浏览器显示;
var/www/icons/ Apache 小图标文件存放目录;
var/www/cgi-bin/ 可执行的 CGI 程序存放目录。
/var/log/httpd/ Apache 日志目录;
/usr/sbin/apachectl Apache 启动脚本;
/usr/sbin/httpd Apache 二进制执行文件;
/usr/bin/htpasswd 设置 Apache 目录密码访问;
/usr/local/apache2/bin Apache 命令目录;
/usr/local/apache2/build Apache 构建编译目录;
/usr/local/apache2/htdocs/ 源码安装 Apache 网站发布目录;
/usr/local/apache2/cgi-bin 可执行的 CGI 程序存放目录;
/usr/local/apache2/include Apache 引用配置文件目录;
/usr/local/apache2/logs Apache 日志目录;
/usr/local/apache2/man Apache 帮助文档目录;
/usr/local/apache2/manual Apache 手册;
/usr/local/apache2/modules Apache 模块路径。

Apache 配置文件详解

Apache 的配置文件是 Apache WEB 难点,读者需要掌握配置文件中每个参数的含义,才能理解并在日常运维中去解决 Apache 遇到的故障,如下为 Apache 配置文件详

ServerTokens OS 显示服务器的版本和操作系统内核版本;
ServerRoot “/usr/local/apache2/” Apache 主配置目录;
PidFile run/httpd.pid PidFile 进程文件;
Timeout 60 不论接收或发送,当持续连接等待超过 60 秒则
该次连接就中断;
KeepAlive Off 关闭持续性的连接;
MaxKeepAliveRequests 100 当 KeepAlive 设置为 On 的时候,该数值
可以决定此次连接能够传输的最大传输数量;
KeepAliveTimeout 65 当 KeepAlive 设置为 On 的时候,该连接
在最后一次传输后等待延迟的秒数;

MaxRequestsPerChild 4000 每个进程能处理的最大请求数;

常见报错

执行脚本编译报错信息如下:

mod_proxy_balancer.c:25:24: fatal error: apr_escape.h: No such file or directory
#include “apr_escape.h”

解决方法:
禁止掉proxy参数,–disable-proxy!

执行脚本预编译报错信息一如下:

configure: error: APR-util not found. Please read the documentation.

解决方法:

yum install apr-util-devel -y

执行脚本预编译报错信息二如下:

configure: error: in `/data/sh/20180416/httpd-2.4.33’:
configure: error: C compiler cannot create executables

解决方法:

yum install gcc gcc-c++ -y

在这里插入图片描述

Apache虚拟主机配置方法:

<VirtualHost *:80>
ServerAdmin jfedu@jfedu.net
DocumentRoot “/usr/local/apache2/htdocs/www.jfedu1.com”
ServerName www.jfedu1.com
ErrorLog “logs/www.jfedu1.com/error_log”
CustomLog “logs/www.jfedu1.com/access_log” common

<VirtualHost *:80>
ServerAdmin jfedu@jfedu.net
DocumentRoot “/usr/local/apache2/htdocs/www.jfedu2.com”
ServerName www.jfedu2.com
ErrorLog “logs/www.jfedu2.com/error_log”
CustomLog “logs/www.jfedu2.com/access_log” common

Apache虚拟主机脚本

#!/bin/bash
#2017年9月25日10:41:45
#auto install apache and config virtual host
#by author www.jfedu.net 2018
################
APACHE_SOFT=“httpd-2.4.27.tar.bz2”
APACHE_URL=“https://mirrors.tuna.tsinghua.edu.cn/apache/httpd”
APACHE_DEST=“/usr/local/apache2”
APACHE_SRC=echo $APACHE_SOFT|sed 's/.tar.*//g'
APACHE_ARGS=“–enable-so --enable-rewrite --enable-echo --enable-info --enable-ssl”
APACHE_DOMAIN=“v1.jfedu.net”
#Install Apache WEB Service
wget -c A P A C H E U R L / APACHE_URL/ APACHEURL/APACHE_SOFT
rm -rf $APACHE_SRC
tar -jxvf $APACHE_SOFT
cd A P A C H E S R C . / c o n f i g u r e − − p r e f i x = APACHE_SRC ./configure --prefix= APACHESRC./configureprefix=APACHE_DEST/ $APACHE_ARGS
make -j8
make -j8 install
pkill httpd
$APACHE_DEST/bin/apachect start

#Config Apache virtual hosts
cd $APACHE_DEST/conf/
sed -i ‘/vhosts/s/#//g’ httpd.conf
sed ‘s/^#ServerName/ServerName/g’ httpd.conf
cat>>extra/httpd-vhosts.conf<<EOF

Virtual Hosts

<VirtualHost *:80>
ServerAdmin support@jfedu.net
DocumentRoot “ A P A C H E D E S T / h t d o c s / APACHE_DEST/htdocs/ APACHEDEST/htdocs/APACHE_DOMAIN”
ServerName A P A C H E D O M A I N E r r o r L o g " l o g s / APACHE_DOMAIN ErrorLog "logs/ APACHEDOMAINErrorLog"logs/APACHE_DOMAIN/error_log"
CustomLog “logs/$APACHE_DOMAIN/access_log” common

EOF

#Create Apache virtual Dir
mkdir -p A P A C H E D E S T / h t d o c s / APACHE_DEST/htdocs/ APACHEDEST/htdocs/APACHE_DOMAIN
mkdir -p A P A C H E D E S T / l o g s / APACHE_DEST/logs/ APACHEDEST/logs/APACHE_DOMAIN
touch A P A C H E D E S T / h t d o c s / APACHE_DEST/htdocs/ APACHEDEST/htdocs/APACHE_DOMAIN/index.html
cat> A P A C H E D E S T / h t d o c s / APACHE_DEST/htdocs/ APACHEDEST/htdocs/APACHE_DOMAIN/index.html<<EOF

The Test Page $APACHE_DOMAIN 京峰教育


It works!

EOF $APACHE_DEST/bin/apachectl restart

SHELL实战Apache2.4源码

#!/bin/bash
#2017年10月17日15:04:10
#auto install httpd service
#by author www.jfeud.net
#####################
#Download Apache and apr soft
wget -c http://mirror.bit.edu.cn/apache/apr/apr-1.6.2.tar.bz2
wget -c http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.0.tar.bz2
wget -c http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.28.tar.bz2
#Install Apr Software
tar -jxvf apr-1.6.2.tar.bz2
cd apr-1.6.2
./configure --prefix=/usr/local/apr
make -j4
make -j4 install
#Install Apr-util Software
cd …/
tar -jxvf apr-util-1.6.0.tar.bz2
cd apr-util-1.6.0
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make -j4
make -j4 install
#Install Apache Software
cd …/
tar -jxvf httpd-2.4.28.tar.bz2
cd httpd-2.4.28
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-ssl --enable-echo --enable-proxy --enable-info --with-apr=/usr/loca/apr --with-apr-util=/usr/local/apr-util/
make -j4
make -j4 install
#Start Apache WEB service
pkill httpd
/usr/local/apache2/bin/apachectl restart

在这里插入图片描述

SHELL实战Apache2.4源码虚拟主机(思路)

1)开启apache虚拟主机配置文件;
2)在配置文件中添加域名配置即可;
3)创建虚拟主机对应发布目录WEB网页;
4)重启apache,在客户端配置hosts,浏览器访问不同的域名;

SHELL编程开发Apache源码编译脚本(脚本v2)

#2018年3月19日15:08:20
#auto install apache soft
#by author www.jfedu.net
#########################
APACHE_VER=“ 1 " A P A C H E S O F T = " h t t p d − 1" APACHE_SOFT="httpd- 1"APACHESOFT="httpd{APACHE_VER}.tar.bz2”
APACHE_URL=“http://mirrors.hust.edu.cn/apache/httpd”
APACHE_DIR=“/usr/local/apache2”
APACHE_ARG=“–enable-so --enable-rewrite --enable-ssl --enable-proxy --enable-info”
APACHE_SRC=$(echo $APACHE_SOFT|sed ‘s/.tar.*//g’)
APACHE_YUM=“yum install -y”
if [ $# -eq 0 ];then
echo -e “\033[32m-----------------------\033[0m”
echo -e “\033[32mUsage:{/bin/bash $0 2.4.29|2.4.32|help}\033[0m”
exit 0
fi
if [ $1 == “help” ];then

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
e-info"
APACHE_SRC=$(echo $APACHE_SOFT|sed ‘s/.tar.*//g’)
APACHE_YUM=“yum install -y”
if [ $# -eq 0 ];then
echo -e “\033[32m-----------------------\033[0m”
echo -e “\033[32mUsage:{/bin/bash $0 2.4.29|2.4.32|help}\033[0m”
exit 0
fi
if [ $1 == “help” ];then

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-7eq9FWth-1713283885542)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值