博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二进制编译Httpd服务器
阅读量:5766 次
发布时间:2019-06-18

本文共 2250 字,大约阅读时间需要 7 分钟。

前言:

  Apache HTTP (简称)是的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

环境介绍

  系统环境:CentOS7

  所需软件包:apr-1.5.1.tar.gz、apr-util-1.5.4.tar.gz、httpd-2.4.12.tar.gz

  注意:httpd2.4需要依赖apr和arp-util 1.4以上版本

CentOS编译安装Apache准备:确保开发包组已安装(Development tools、Server Platform Development) 

# yum groupinstall Development tools Server Platform Development

 

0、查询旧版apache的包名,卸载旧版的apache

rpm -q httpdrpm -e httpd-2.2.15-31.el6.centos.x86_64 --nodeps

1、下载官方源码包并解压:  

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.gzwget http://mirror.bit.edu.cn/apache/apr/apr-1.5.1.tar.gzwget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.gz

2、解压

tar -xvf httpd-2.4.12.tar.gz
tar -xf apr-1.5.1.tar.gz tar -xf apr-util-1.5.4.tar.gz

3、解决依赖关系:

mv apr-1.5.1 httpd-2.4.12/srclib/aprmv apr-util-1.5.4 httpd-2.4.12/srclib/apr-util

2、切换至源码目录:

cd httpd-2.4.12

3、执行configue脚本:

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so
1 编译参数详解: 2  3 --prefix:#安装路径 4  5 --sysconfdir:#指定配置文件路径 6  7 --enable-so:#DSO兼容,DSO=Dynamic Shared Object,动态共享对象,可实现模块动态生效 8  9 --enable-ssl:#支持SSL/TLS,可实现https访问 需已安装openssl-devel10 11 --enable-cgi:#支持CGI脚本(默认对非线程的MPM模式开启)12 13 --enable-rewrite:#启用Rewrite功能,URL重写14 15 --enable-deflate:#支持压缩功能16 17 --with-zlib:#使用指定的zlib库,不指定路径会自动寻找18 19 --with-pcre:#使用指定的PCRE库,不指定路径会自动寻找 需已安装pcre-devel20 21 --with-apr:#指定apr安装路径22 23 --with-apr-util:#指定apr-util安装路径24 25 --enable-mpms-shared:#支持动态加载的MPM模块,可选参数:all26 27 --with-mpm:#设置默认启用的MPM模式,{prefork|worker|event}28 29 --enable-modules:#支持动态启用的模块,可选参数:all,most,few,reallyall30 31 #编译之前可使用./configure --help查看各项参数

4、make and make install

make && make install

5、为了方便命令使用需要添加环境变量,编辑二进制程序如何让系统找到:

# cat /etc/profile.d/apache.shPATH=/usr/local/apache/bin:$PATHexport PATH

6、头文件输出给系统:

#ln -sv /usr/local/apache/include /usr/local/include/httpd

7、让系统重新生成库文件路径缓存

#ldconfig -v |grep "^[^[:space:]]"

8、启动apache服务:

# apachectl start

9、查看80端口是否被监听:

netstat -ntl

第一次遇到的情况是80端口未被监听,于是打开安装目录下:/usr/local/apache/logs/error_log出现如下提示:

google了一下原因可能,资源受限,不能分配内存

解决方法:

 

# ulimit -u unlimited   #修改 用户最大进程数  # echo ulimit -u unlimited >>/etc/profile   #保存修改到自启动文件  

再次查看80端口已被监听:

浏览器访问测试:

 

转载于:https://www.cnblogs.com/zm121196/p/9635957.html

你可能感兴趣的文章
Magento XML cheatsheet
查看>>
Egg 2.19.0 发布,阿里开源的企业级 Node.js 框架
查看>>
Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性 ...
查看>>
使用MySQLTuner-perl对MySQL进行优化
查看>>
Swoole 4.1.0 正式版发布,支持原生 Redis/PDO/MySQLi 协程化 ...
查看>>
开发网络视频直播系统需要注意的地方
查看>>
haproxy mysql实例配置
查看>>
强化学习的未来— 第一部分
查看>>
TableStore:用户画像数据的存储和查询利器
查看>>
2019 DockerCon 大会即将召开,快来制定您的专属议程吧!
查看>>
15分钟构建超低成本数据大屏:DataV + DLA
查看>>
jSearch(聚搜) 1.0.0 终于来了
查看>>
盘点2018云计算市场,变化大于需求?
查看>>
极光推送(一)集成
查看>>
MySQL 8.0 压缩包版安装方法
查看>>
@Transient注解输出空间位置属性
查看>>
Ansible-playbook 条件判断when、pause(学习笔记二十三)
查看>>
5种你未必知道的JavaScript和CSS交互的方法(转发)
查看>>
线程进程间通信机制
查看>>
galera mysql 多主复制启动顺序及命令
查看>>