栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

虚拟机下的Ubuntu 20.04 源码安装Apache2 以及避雷安装教程

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

虚拟机下的Ubuntu 20.04 源码安装Apache2 以及避雷安装教程

前言

  在一次安装Apache2源码的过程中,遇到过很多坑,也翻了很多博客,其中还把虚拟机搞炸掉了一次,弄了很久才解决,所以自己想总结一篇博客,用来记录一次这个过程,给以后自己再次安装的时候节省时间,同时可以给跟我一样踩坑的人解决问题,节省时间。
  跟着步骤一步步来,应该不会遇到什么问题。

正文

一、安装依赖包

sudo apt -y install gcc g++ make libexpat1-dev
  • gcc是C语言编译器
  • g++是C++编译器
  • make是执行Makefile文件
  • libexpat1-dev是一个解析XML的C语言库

libexpat1-dev安装过程可能会出现报错,原因是依赖包版本不符合,把依赖包版本安装为对应的版本就可以解决了。


二、创建文件夹

cd /usr/local
sudo mkdir apache2 pcre
  • apache2是apache2安装的位置
  • pcre是apache的依赖包安装位置

三、下载源码包和依赖包

# 源码包通常放在这个目录下
cd /usr/local/src
# 下载apache2源码包
sudo wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.gz
# 解压
sudo tar -zxvf httpd-2.4.46.tar.gz
# 删除压缩包
sudo rm httpd-2.4.46.tar.gz
# 把依赖包放srclib下
cd /usr/local/src/httpd-2.4.46/srclib
# 下载依赖包
sudo wget https://mirrors.bfsu.edu.cn/apache//apr/apr-1.7.0.tar.gz
sudo wget https://mirrors.bfsu.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
sudo wget https://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz
# 解压依赖包
sudo tar -zxvf apr-1.7.0.tar.gz
sudo tar -zxvf apr-util-1.6.1.tar.gz
sudo tar -zxvf pcre-8.45.tar.gz
# 删除压缩包
sudo rm *.tar.gz
# 重命名,把版本号去掉
sudo mv apr-1.7.0 apr
sudo mv apr-util-1.6.1 apr-util
sudo mv pcre-8.45 pcre
# apr和apr-util不用安装,只安装pcre
cd /usr/local/src/httpd-2.4.46/srclib/pcre
sudo ./configure --prefix=/usr/local/pcre
# 编译
sudo make
# 执行安装pcre
sudo make install
# 删除make产生的文件
sudo make clean
  • --prefix=...,是指定安装目录

四、安装Apache2

# 进入apache源码包
cd /usr/local/src/httpd-2.4.46
sudo ./configure --prefix=/usr/local/apache2 --with-pcre=/usr/local/pcre --with-included-apr
# 编译
sudo make
# 运行安装
sudo make install
# 清除编译产生的文件
sudo make clean
  • --prefix=/usr/local/apache2,将apache2安装在/usr/local/apache2文件夹下
  • --with-pcre=/usr/local/pcre,/usr/local/pcre是依赖包pcre已经安装的位置
  • --with-included-apr,使用/usr/local/src/httpd-2.4.46/srclib下的apr和apr-uitl

如果使用make过程中出现错误了,先使用make clean清除文件之后,再重新make


五、运行Apache2

# 修改配置文件,修改为本地运行
sudo vim /usr/local/apache2/conf/httpd.conf
# 找到ServerName
# 进入vim之后直接输入 /ServerName 然后回车就可以直接跳转到ServerName了
# 可以在下面看到有一行注释为 ServerName www.example.com:80
# 在这一行的下面添加 ServerName localhost:80
ServerName localhost:80
# 启动Apache2
sudo /usr/local/apache2/bin/apachectl -k start
# 停止Apache2
sudo /usr/local/apache2/bin/apachectl -k stop
# 重启Apache2
sudo /usr/local/apache2/bin/apachectl -k restart

1、如果启动Apache2成功,访问http://localhost,网页会出现It works!

2、如果启动Apache2报错了,可能是由于80端口被占用的原因,类似于下面的报错

(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

以下是我的一种解决方案

# 安装Linux的网络工具集
sudo apt install net-tools
# 查看80端口是否被占用
sudo lsof -i:80

如果80端口有被占用会出现类似一下图片的内容

我们只需要把这些pid都杀死就好了

# sudo kill -9 pid
sudo kill -9 61468 61469 ... 

总结

  本次安装Apache2源码的教程就结束了,很荣幸你能看到最后,那说明这篇文章对你有很大帮助,如果还遇到什么问题的话,可以在评论区说说你的问题(最好附上截图)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号