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

110 阅读8分钟

img img

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

了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e36482fa922c45cf90a225b11ca1b417~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=9Xu8r0EonOhcU8CoBSQ5DGhr1SY%3D)  
 (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


或者  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b12b6c72ff0a4e0ba4d63d5007e93abb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=bjYeKKt17ase9zQEZb%2FGSMJXBY0%3D)  
 创建虚拟主机里面对应项目的日志文件



#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


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ba90de891a194763b63aa1c2ba831885~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=x4j0AWCB88CPhzzit4sd%2FuSssfw%3D)



#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


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/8acf1198c1f4466e9c5cb34d2b76c59a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=lgRsb39fgU94aPufU2HIpXdwstA%3D)  
 检测配置是否有误



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

/usr/local/apache2/bin/apachectl graceful

/usr/local/apache2/bin/apachectl start

#netstat -lantp |grep 80


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/000da3d110714fab9551d071bd657e9c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=CnLodaxBGT9%2FKEZz8Mfzy2ZMCZM%3D)  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/dd2b3c24b9ec44f689d495e6d14f0c53~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=Dhw4RlGWFwIlhFHFwQW9dPaE9hU%3D)  
 提示 : httpd.conf配置文件里面ServerName没有www.jfedu.com、www.jfedu.com1、www.jfedu.com2对应的主机名



ServerName localhost


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/dbe57ce55ef74186ab5fffbc30ce3647~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=bhTJ4faM6AXBhmgIeQNlmQsk9X0%3D)  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/af480b02bf36428d9ce225a2e3e154d9~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=9gEhTSpPJNOZzkXy7I%2FDZn5X9KY%3D)


(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


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/67728d8c9b744fa9860a6a03292ae9b6~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=q%2BOyRAWQcyyw42ydSJub3n75%2Bgg%3D)  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6139a3c29f9649a4a50972b6aea7397e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=18bybaC8H1Ebmf6TS267OuDlRHY%3D)  
 (5) 浏览器访问 www.jf1.com、www.jf2.com 如图 10-5(a)、10-5(b)所示,  
 至此 Apache 基于多域名虚拟主机配置完毕,如果还需添加虚拟主机,直接拷贝其  
 中一个虚拟主机配置、修改 WEB 发布目录即可:  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ffe8e29355b540f7856e29f2290565f8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=GRx9nISUCFYkCLsz5tFNq7Eos%2FA%3D)  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/4c1ee70064eb4b34865e4766fe662a50~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=0p8Cy8uPDUVoNLePhauQpMowmIU%3D)


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/7b9784f263fa4c8dbadcc4b70ccb2a6b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=EDgQBHoPvmT2hjHQScEnvpKgNbc%3D)  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f6825b853a8044898a72ed80e71f16c0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=h%2Fh3e8mWRGBJSP%2BAH7JA6jfXBds%3D)


## 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 的时候,该连接 在最后一次传输后等待延迟的秒数; Prefork MPM 引擎配置段; StartServers 8 默认启动 Apache 工作进程数; MinSpareServers 5 最小空闲进程数; MaxSpareServers 20 最大空闲进程数; ServerLimit 4096 Apache 服务器最多进程数; MaxClients 4096 每秒支持的最大客户端并发;

MaxRequestsPerChild 4000 每个进程能处理的最大请求数; Worker MPM 引擎配置段; StartServers 8 默认启动 Apache 工作进程数; MaxClients 4000 每秒支持的最大客户端并发; MinSpareThreads 25 最小空闲线程数; MaxSpareThreads 75 最小空闲线程数; ThreadsPerChild 75 每个进程启动的线程数; MaxRequestsPerChild 0 每个进程能处理的最大请求数,0 表示无限制; LoadModule mod_version.so 静态加载 apache 相关模块; ServerAdmin support@jfedu.net 管理员邮箱,网站异常,错误信息会发生 至该邮箱; DocumentRoot "/usr/local/apache2/htdocs/" Apache 网站默认发布目录; <Directory "/data/webapps/www1"> 设置/data/webapps/www1 目录权限; AllowOverride All Options -Indexes FollowSymLinks Order allow,deny Allow from all AllowOverride 设置为 None 时,目录中.htaccess 文件将被 完全忽略,当指令设置为 All 时,.htaccess 文件生效; Options -Indexes FollowSymLinks 禁止浏览目录,去掉”-“,表示浏览目录, 常用于下载站点; Order allow,deny 默认情况下禁止所有客户机访问; Order deny,allow 默认情况下允许所有客户机访问; Allow from all 允许所有客户机访问


## 常见报错


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



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


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/917119a63da7450790cf6b6290639e65~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=D3ndjn4jRB0yMcTZsRcNvryFnE4%3D)


## 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="mirrors.tuna.tsinghua.edu.cn/apache/http…" 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 APACHEURL/APACHE_URL/APACHE_SOFT rm -rf APACHESRCtarjxvfAPACHE_SRC tar -jxvf APACHE_SOFT cd APACHESRC./configureprefix=APACHE_SRC ./configure --prefix=APACHE_DEST/ APACHEARGSmakej8makej8installpkillhttpdAPACHE_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 "APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN" ServerName APACHEDOMAINErrorLog"logs/APACHE_DOMAIN ErrorLog "logs/APACHE_DOMAIN/error_log" CustomLog "logs/$APACHE_DOMAIN/access_log" common EOF

#Create Apache virtual Dir mkdir -p APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN mkdir -p APACHEDEST/logs/APACHE_DEST/logs/APACHE_DOMAIN touch APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN/index.html cat>APACHEDEST/htdocs/APACHE_DEST/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 mirror.bit.edu.cn/apache/apr/… wget -c mirror.bit.edu.cn/apache/apr/… wget -c mirror.bit.edu.cn/apache/http… #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


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/dafc2e7076734bda85f27a05b6062987~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=P0rusdVnR4iwNsUy2TBRyQ0trBo%3D)


## 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"APACHESOFT="httpd1" APACHE_SOFT="httpd-{APACHE_VER}.tar.bz2" APACHE_URL="mirrors.hust.edu.cn/apache/http…" APACHE_DIR="/usr/local/apache2" APACHE_ARG="--enable-so --enable-rewrite --enable-ssl --enable-proxy --enable-info" APACHE_SRC=(echo(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 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 APACHEYUMwgetmakegccgccc++glibcopenssldevelopensslAPACHE_YUM wget make gcc gcc-c++ glibc openssl-devel openssl APACHE_YUM pcre pcre-devel apr apr-devel apr-util-devel apr-util wget -c APACHEURL/APACHE_URL/APACHE_SOFT tar -jxf APACHESOFTcdAPACHE_SOFT cd APACHE_SRC ./configure --prefix=APACHEDIR/APACHE_DIR/ APACHE_ARG make -j4 make -j4 install $APACHE_DIR/bin/apachectl start ps -ef|grep httpd netstat -tnlp|grep 80


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



#!/bin/bash #2018年3月19日15:08:20 #auto install apache soft #by author www.jfedu.net ######################### APACHE_VER="1"APACHESOFT="httpd1" APACHE_SOFT="httpd-{APACHE_VER}.tar.bz2" APACHE_URL="mirrors.hust.edu.cn/apache/http…" APACHE_DIR="/usr/local/apache2" APACHE_ARG="--enable-so --enable-rewrite --enable-ssl --enable-proxy --enable-info" APACHE_SRC=(echo(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 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 [ ! -f APACHEDIR/bin/apachectl];thenAPACHE_DIR/bin/apachectl ];then APACHE_YUM wget make gcc gcc-c++ glibc openssl-devel openssl APACHEYUMpcrepcredevelapraprdevelaprutildevelaprutilwgetcAPACHE_YUM pcre pcre-devel apr apr-devel apr-util-devel apr-util wget -c APACHE_URL/APACHESOFTtarjxfAPACHE_SOFT tar -jxf APACHE_SOFT cd APACHESRC./configureprefix=APACHE_SRC ./configure --prefix=APACHE_DIR/ APACHEARGmakej4makej4installAPACHE_ARG make -j4 make -j4 install APACHE_DIR/bin/apachectl restart ps -ef|grep httpd netstat -tnlp|grep 80 else echo -e "\033[32mThe APACHEDIRAlreadyEsxit,PleaseConintueInstallorexit.\033[0m"readINPUTif[APACHE_DIR Already Esxit,Please Conintue Install or exit.\033[0m" read INPUT if [ INPUT == "yes" -o INPUT=="y"OINPUT == "y" -O INPUT == "Y" ];then APACHEYUMwgetmakegccgccc++glibcopenssldevelopensslAPACHE_YUM wget make gcc gcc-c++ glibc openssl-devel openssl APACHE_YUM pcre pcre-devel apr apr-devel apr-util-devel apr-util wget -c APACHEURL/APACHE_URL/APACHE_SOFT tar -jxf APACHESOFTcdAPACHE_SOFT cd APACHE_SRC ./configure --prefix=APACHEDIR/APACHE_DIR/ APACHE_ARG make -j4 make -j4 install $APACHE_DIR/bin/apachectl restart ps -ef|grep httpd netstat -tnlp|grep 80 else exit 1 fi fi


## 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="mirrors.tuna.tsinghua.edu.cn/apache/http…" 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 APACHEURL/APACHE_URL/APACHE_SOFT rm -rf APACHESRCtarjxvfAPACHE_SRC tar -jxvf APACHE_SOFT cd APACHESRC./configureprefix=APACHE_SRC ./configure --prefix=APACHE_DEST/ APACHEARGSmakej8makej8installpkillhttpdAPACHE_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 "APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN" ServerName APACHEDOMAINErrorLog"logs/APACHE_DOMAIN ErrorLog "logs/APACHE_DOMAIN/error_log" CustomLog "logs/$APACHE_DOMAIN/access_log" common EOF

#Create Apache virtual Dir mkdir -p APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN mkdir -p APACHEDEST/logs/APACHE_DEST/logs/APACHE_DOMAIN touch APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN/index.html cat>APACHEDEST/htdocs/APACHE_DEST/htdocs/APACHE_DOMAIN/index.html<<EOF

The Test Page $APACHE_DOMAIN 京峰教育


It works!

EOF $APACHE_DEST/bin/apachectl restart

![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/324b96506cb8476b8c6262e9addb4beb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771748341&x-signature=c6nqeGqNO24ZQb82aB%2FNmMFf6ec%3D)


## SHELL实战Apache2.4源码(思路)


1)官网下载HTTP 2.4版本;  
 2)下载apr依赖包,编译安装apr、apr-util;  
 3)解压源码软件,源码安装三个步骤;  
 4)./configure预编译;  
 5)make编译;  
 6)make install安装;  
 7)启动Apache服务即可;



#!/bin/bash #2017年10月17日15:04:10 #auto install httpd service #by author www.jfeud.net ##################### #Download Apache and apr soft wget -c mirror.bit.edu.cn/apache/apr/… wget -c mirror.bit.edu.cn/apache/apr/… wget -c mirror.bit.edu.cn/apache/http… #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

img img

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

了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H