当前位置: 首页 > news >正文

Apache(httpd)源码包安装

Apache安装

Apache是一个基金会名字,httpd才是我们需要安装的软件包,httpd早期的名字叫做Apache;
Apache官网www.apache.org

下载地址
2.2源码包: http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
2.4源码包: http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
apr: http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
apr-util: https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz

apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以方便移植(Linux移植到Windows)

apache安装条件:必须先安装gcc包、pcre包、apr与apr-util;

下载与解压软件包

wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
tar zxvf apr-1.6.3.tar.gz
tar zxvf httpd-2.4.29.tar.gz

安装apr-1.63

cd apr-1.6.3/
./configure --prefix=/usr/local/apr
//检查下命令是否正常运行echo $?
make && make install

安装apr-util

cd /usr/local/src/apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

错误排除

告错:

xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录

那么就搜索提示的expat
yum list |grep -i expat

[root@shu-test apr-util-1.6.1]# yum list |grep -i expat
expat.x86_64                                2.1.0-10.el7_3             @anaconda
expat-devel.x86_64                          2.1.0-10.el7_3             @base    
expat.i686                                  2.1.0-10.el7_3             base     
expat-devel.i686                            2.1.0-10.el7_3             base     
expat-static.i686                           2.1.0-10.el7_3             base     
expat-static.x86_64                         2.1.0-10.el7_3             base     
[root@shu-test apr-util-1.6.1]#

安装expat-devel包

yum install -y expat-devel

安装httpd

cd /usr/local/src/httpd-2.4.29/
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
make && make install

错误排除

告错1:

checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
提示:缺少PCRE;

解决:查询与安装pcre

yum list |grep -i pcre
yum install -y pcre-devel

告错2:

collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 错误 1
make[2]: 离开目录“/usr/local/src/httpd-2.4.29/support”
make[1]: *** [all-recursive] 错误 1
make[1]: 离开目录“/usr/local/src/httpd-2.4.29/support”
make: *** [all-recursive] 错误 1

解决方案:
删除文件,重新解压源码包安装,先复制文档,在configure后加上 “--with-included-apr”。再重新编译;

cd /usr/local/src/
cp -r apr-1.6.3 /usr/local/src/httpd-2.4.29/srclib/apr
cp -r apr-util-1.6.1 /usr/local/src/httpd-2.4.29/srclib/apr-util
cd /usr/local/src/httpd-2.4.29/
./configure --prefix=/usr/local/apache2.4 --with-included-apr --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
make && make install

启动httpd

/usr/local/apache2.4/bin/apachectl start

查询httpd是否启动

ps aux |grep httpd
netstat -lntp

httpd目录详解

apache2.4文件夹下
conf文件夹:配置文件
htdocs:主页文件
logs文件夹:日志文件
modules:模块存放

查看apache调用的模块

/usr/local/apache2.4/bin/httpd -M
/usr/local/apache2.4/bin/apachectl -M

转载于:https://blog.51cto.com/shuzonglu/2073717

相关文章:

  • 重新认识下数组的concat方法
  • 基于Socket+Zookeeper的简单RPC框架
  • 算法学习之路|升序排序
  • vue:响应原理
  • yum.repos.d中的变量($releasever与$basearch)
  • Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程
  • 造成类在多线程时不安全的原因
  • JavaScript中的图片处理与合成(一)
  • 在 Laravel 中动态隐藏 API 字段
  • 采购与供应商管理:如何突破传统模式
  • GDB调试技巧:gdb at pid无法调试的问题
  • [CERC2017]Cumulative Code
  • 使用OpenCV+C++将Gif文件分解并且转换为视频文件
  • webTest-----webUI自动化框架
  • 高通无人机新技术,深度学习把控飞行安全
  • 时间复杂度分析经典问题——最大子序列和
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 2019年如何成为全栈工程师?
  • Android 架构优化~MVP 架构改造
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • gf框架之分页模块(五) - 自定义分页
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Objective-C 中关联引用的概念
  • Swoft 源码剖析 - 代码自动更新机制
  • Tornado学习笔记(1)
  • vue:响应原理
  • Yii源码解读-服务定位器(Service Locator)
  • 阿里云前端周刊 - 第 26 期
  • 从setTimeout-setInterval看JS线程
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 翻译--Thinking in React
  • 分类模型——Logistics Regression
  • 后端_MYSQL
  • 区块链技术特点之去中心化特性
  • 微信公众号开发小记——5.python微信红包
  • 终端用户监控:真实用户监控还是模拟监控?
  • !!Dom4j 学习笔记
  • #13 yum、编译安装与sed命令的使用
  • #pragma预处理命令
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (14)Hive调优——合并小文件
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net 垃圾回收机制原理(二)
  • .NET基础篇——反射的奥妙
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /bin/rm: 参数列表过长"的解决办法
  • ::前边啥也没有
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [3D基础]理解计算机3D图形学中的坐标系变换