Apache 源码安装详细教程,一线互联网公司Java面试核心知识点

  • 进程是操作系统分配资源的资本单位,进程是程序的实体

  • 进程是动态的,程序是静态

进程和线程的区别


  • 线程是进程的基本单位,范围比进程要小

  • 一个进程中包含一个线程或者多个线程,所有的线程共享该进程的内存空间

  • 如果进程挂掉,所有线程崩溃,如果一个线程异常退出,连同其他的线程或者进程会崩溃

  • 多线程的好处是提高访问效率、并发高网站采用多进程-多线程工作。

目前主流的WEB服务器软件


  • Apache 、Nginx、Lighttpd、IIS

  • Resin、Tomcat、WebLogic、Jetty等

  • Apache 是一个古老的web服务器软件,基于Apahce 基金会开发的,默认只能发布静态网页

  • Apache 是一个多模块式的软件、模块丰富

  • Apache 有三种工作模式:Prefork、Worker、Event

  • Prefork:Apche默认工作模式,多进程模型,预先生成进程,一个请求用一个进程响应,预先生成多个空闲进程,随时等待请求到达,最大不会超过1024个

  • 缺点:多进程方式,比较消耗内存和系统资源

  • Worker MPM:工作模式。基于线程工作一个请求用一个线程响应启动多个进程,每个进程生成多个线程内存占用量比较小,适合大并发、高流量的WEB服务器

  • 缺点:一个线程崩溃,整个进程就会连同其任何线程一起挂掉

源码包安装 httpd


点击官网下载地址

  • 下载http-2.4.46.tar.bz2:

  • https://downloads.apache.org/httpd/httpd-2.4.46.tar.bz2

[root@localhost usr]# cd src/

[root@localhost src]# wget https://downloads.apache.org/httpd/httpd-2.4.46.tar.bz2

–2021-04-03 15:53:32-- https://downloads.apache.org/httpd/httpd-2.4.46.tar.bz2

Resolving downloads.apache.org (downloads.apache.org)… 88.99.95.219, 2a01:4f8:10a:201a::2

Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 9363314 (8.9M) [application/x-gzip]

Saving to: ‘httpd-2.4.46.tar.bz2’

100%[===================================================================>] 9,363,314 1.07MB/s in 9.4s

2021-04-03 15:53:43 (972 KB/s) - ‘httpd-2.4.46.tar.bz2’ saved [9363314/9363314]

[root@localhost src]# ll

total 7992

drwxr-xr-x. 2 root root 6 Nov 5 2016 debug

-rw-r–r-- 1 root root 7187805 Aug 5 2020 httpd-2.4.46.tar.bz2

drwxr-xr-x. 2 root root 6 Nov 5 2016 kernels

  • 解压http-2.4.46.5安装包:

  • tar -xjf httpd-2.4.46.tar.bz2

[root@localhost src]# tar xjf httpd-2.4.46.tar.bz2 解压.bz2包报错,提示缺bzip2,所以安装bzip2

tar (child): bzip2: Cannot exec: No such file or directory

tar (child): Error is not recoverable: exiting now

tar: Child returned status 2

tar: Error is not recoverable: exiting now

[root@localhost ~]# yum install bzip2 -y 解决报错,安装bzip2

[root@localhost src]# tar -xjf httpd-2.4.46.tar.bz2 再次解压

  • 进入解压目录

[root@localhost src]# cd httpd-2.4.46

[root@localhost httpd-2.4.46]# ls

ABOUT_APACHE BuildAll.dsp configure.in include LICENSE README test

acinclude.m4 BuildBin.dsp docs INSTALL Makefile.in README.cmake VERSIONING

Apache-apr2.dsw buildconf emacs-style InstallBin.dsp Makefile.win README.platforms

Apache.dsw CHANGES httpd.dep LAYOUT modules ROADMAP

apache_probes.d CMakeLists.txt httpd.dsp libhttpd.dep NOTICE server

ap.d config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib

build configure httpd.spec libhttpd.mak os support

[root@localhost httpd-2.4.46]#

  • 检测系统环境是否能够达到编译的请求

  • 安装apache之前,需要先安装apr apr-devel apr-util apr-util-devell优化模块。

  • 安装编译前,先确认安装编译环境(gcc-c++

[root@localhost httpd-2.4.46]# yum install apr apr-devel apr-util apr-util-devel -y

[root@localhost httpd-2.4.46]# yum -y install gcc-c++ -y

  • 预编译./configure

[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/apache --with-pmp=worker

……编译过程省略

模块解释:

–prefix=/usr/local/apache/ 指定安装路径

–enable-rewrite 预编译Apache,启用rewrite规则

–enable-so 启用动态加载库;

–enable-ssl 启用ssl功能

–with-mpm=prefork|worker|event() 指定工作模式

–enable-mpms-shared=all 也可以编译为三种都支持,通过修改配置来更换。

  • 编译make 根据生成的makefile文件来执行对应的编译

[root@localhost httpd-2.4.46]# make -j4 使用4个内核编译,提升编译速度。(根据内核数量添加)

  • 安装配置文件make install

[root@localhost httpd-2.4.46]# make install

[root@localhost ~]# cd /usr/local/apache/

[root@localhost apache]# ls

bin build cgi-bin conf error htdocs icons include logs man manual modules

[root@localhost apache]#

  • 修改网页内容

[root@localhost ~]# cd /usr/local/apache/htdocs/

[root@localhost htdocs]# ls

index.html

[root@localhost htdocs]# rm -f index.html

[root@localhost htdocs]# rz

[root@localhost htdocs]# ls

love72.zip

[root@localhost htdocs]# yum -y install unzip*

[root@localhost htdocs]# unzip love72.zip

Archive: love72.zip

creating: images/

inflating: images/1.jpg

inflating: index.html

creating: js/

inflating: js/yiqi.js

creating: style/

inflating: style/main.css

[root@localhost htdocs]# ls

images index.html js love72.zip style

[root@localhost htdocs]# cd …/

[root@localhost apache]# ./bin/apachectl restart 重启服务

  • 启动Apache服务,临时关闭selinux、firewalld防火墙

[root@localhost ~]# getenforce

Disabled

[root@localhost ~]#

[root@localhost ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: inactive (dead)

Docs: man:firewalld(1)

[root@localhost ~]#

[root@localhost ~]# /usr/local/apache/bin/apachectl stop

[root@localhost ~]# /usr/local/apache/bin/apachectl start

  • 测试:

在这里插入图片描述

总结

============================================================

Apache 重启报错解决办法


  • Apache按照重启报错处理方法

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

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

va)**
[外链图片转存中…(img-JV9kbSom-1712625673236)]

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

[外链图片转存中…(img-y4xFmrko-1712625673237)]

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

[外链图片转存中…(img-atDr6z7E-1712625673237)]

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值