Linux下apache和fcgi的关系,Linux下编译安装Apache httpd 2.4
目录
一 编译安装的优势
二httpd的版本
三httpd 24的新特性
四 编译安装httpd 24
五 配置http24启动及停止
六 配置man手册
七 验证
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。当前Apache版本为2.4,本文主要描述基于CentOS 6.5以源码方式安装Apache httpd。
一、编译安装的优势
源码的编译安装一般由3个步骤组成:
配置(configure),通常依赖gcc编译器,binutils,glibc。配置软件特性,检查编译环境,生成 Makefile文件
编译(make)
安装(make install)
优势
自定义软件功能
优化编译参数,提高性能
解决不必要的软件间依赖
方便清理与卸载
configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –-help输出详细的选项列表。
常用的选项
--prefix
该选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,
库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share
如果配置--prefix,如: ./configure --prefix=/usr/local/test
则可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
用了—prefix选项的?一个好处是卸载软件或移植软件。
当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;
移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall?但前提是make文件指定过uninstall。
二、httpd的版本
版本:
httpd-1.3
httpd-2.0
httpd-2.2
httpd-2.4
三、httpd 2.4的新特性
1) MPM支持运行时装载
--enable-mpms-shared=all --with-mpm=prefork|worker|event
2) 支持event MPM
3) 异步读写支持
4) 支持每模块及每目录分别使用不同的日志级别
5) 支持per-request(即支持, , and 条件判断)
6) 增强版的表达式分析器;
7) 支持毫秒级keepalive timeout;
8) 基于FQDN(域名)的虚拟主机不再需要NameVirtualHost;
9) 支持用户使用自定义变量;
新增一些模块:mod_proxy_fcgi, mod_ratelimit, mod_request, mod_remoteip
修改了一些配置机制:不再支持使用order, allow, deny来实现基于IP的访问控制;
四、编译安装httpd 2.4
1、依赖关系
httpd依赖于apr, apr-util
apr全称为apache portable runtime,能实现httpd跨平台运行
httpd-2.4 依賴于1.4+及以上版本的apr
apr-1.5.0.tar.bz2
apr-util-1.5.3.tar.bz2
httpd-2.4.9.tar.bz2
pcre-devel包
openssl-devel
2、编译安装
# yum install gcc
# yum install pcre-devel
# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/local/apr (--prefix指定apr安装的目录)
# make
# make install
# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install ###该项被漏掉,补充@20160714
# tar xf httpd-2.4.9.tar.bz2
以下为几个主要的配置项
--sysconfdir=/etc/httpd24 指定配置文件路径
--enable-so 启动模块动态装卸载
--enable-ssl 编译ssl模块
--enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)
--enable-rewrite 支持url重写 --Author : Leshami
--with-zlib 支持数据包压缩 --Blog : http://blog.csdn.net/leshami
--with-pcre 支持正则表达式
--with-apr=/usr/local/apr 指明依赖的apr所在目录
--with-apr-util=/usr/local/apr-util/ 指明依赖的apr-util所在的目录
--enable-modules=most 启用的模块
--enable-mpms-shared=all 以共享方式编译的模块
--with-mpm=prefork 指明httpd的工作方式为prefork
# cd httpd-2.4.9
# ./configure
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util
--prefix=/usr/local/apache
--sysconfdir=/etc/httpd24
--enable-so
--enable-ssl
--enable-cgi
--enable-rewrite
--with-zlib
--with-pcre
--with-mpm=prefork
--enable-modules=most
--enable-mpms-shared=all
# make
# make install
五、配置http2.4启动及停止
1、修改端口号
修改端口号使得与2.2版本使用不同的端口,可以同时运行,修改后如下
# cat /etc/httpd24/httpd.conf |grep Listen |grep -v ^#
Listen 8080
2、启动与停止
# /usr/local/apache/bin/apachectl start
# netstat -nltp|grep 80
tcp 0 0 :::8080 :::* LISTEN 17365/httpd
# /usr/local/apache/bin/apachectl status
Not Found
The requested URL /server-status was not found on this server.
通过修改httpd.conf,增加如下配置
# grep server-stat /etc/httpd24/httpd.conf -A5
SetHandler server-status
# Order deny,allow
# Deny from all
Allow from 192.168.21.157 192.168.21.10
# /usr/local/apache/bin/apachectl restart
# /usr/local/apache/bin/apachectl status
Apache Server Status for localhost (via 127.0.0.1)
Server Version: Apache/2.4.9 (Unix)
Server MPM: prefork
..........
# /usr/local/apache/bin/apachectl stop
3、配置自启动文件
可以通过复制2.2版本的启动文件,修改相关路径后将2.4版作为单独服务运行,如下
注启动文件pid文件位置要配置成与/usr/local/apache/bin/apachectl -V看到的pid位置一致
查看pid位置
# /usr/local/apache/bin/apachectl -V|grep pid
-D DEFAULT_PIDLOG="logs/httpd.pid"
# cp /etc/init.d/httpd /etc/init.d/httpd24
# vi /etc/init.d/httpd24
# diff /etc/init.d/httpd /etc/init.d/httpd24
26,27c26,27
< if [ -f /etc/sysconfig/httpd ]; then
---
> if [ -f /etc/httpd24 ]; then
> . /etc/httpd24
42,46c42,46
< apachectl=/usr/sbin/apachectl
< httpd=${HTTPD-/usr/sbin/httpd}
< prog=httpd
< pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
< lockfile=${LOCKFILE-/var/lock/subsys/httpd}
---
> apachectl=/usr/local/apache/bin/apachectl
> httpd=${HTTPD-/usr/local/apache/bin/httpd}
> prog=httpd24
> pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
> lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
# service httpd24 start
Starting httpd24: [ OK ]
# service httpd24 status
httpd (pid 15641) is running...
# netstat -nltp|grep 80
tcp 0 0 :::80 :::* LISTEN 15677/httpd ###2.2版httpd
tcp 0 0 :::8080 :::* LISTEN 15641/httpd ###2.4版httpd
可以通过复制apachectl文件生成服务脚本
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd249
# service httpd249 start
# service httpd249 status
ELinks: Connection refused ###该方式无法查看到状态
[root@orasrv1 bin]# netstat -nltp|grep 80
tcp 0 0 :::8080 :::* LISTEN 15999/httpd
最后将配置文件添加到服务,以下为http24为例
# chkconfig --add httpd24
# chkconfig httpd24 on
六、配置man手册
vi /etc/man.config
MANPATH /usr/local/apache/man
七、验证
# echo "This is a apached 2.4.9 version">>/usr/local/apache/htdocs/index.html
# curl http://192.168.21.10:8080
It works!
This is a apached 2.4.9 version
Linux下apache和fcgi的关系,Linux下编译安装Apache httpd 2.4相关推荐
- centos编译apache php mysql,在CentOS6.7中编译安装 apache php mysql
安装 开发工具 yum groupinstall "Development Tools" ------------------------------ tar -jxvf apr- ...
- linux apache 安装 rewrite,linux下单独编译安装Apache rewrite_module
Redhat linux下单独编译安装Apache rewrite_module Apache已经编译安装完了,今天弄了个lifebox,装完后发现必须得用rewrite,所以就给它装了个~~ 找到a ...
- linux3.10.53编译,根据官方文档在Linux下编译安装Apache
根据官方文档在Linux下编译安装Apache 前言 永远记住官方文档才是最准确的安装手册,这篇文章仅为对官方文档的解读和补充,学习提升务必阅读官方文档: http://httpd.apache.or ...
- 用Linux虚拟机手工编译安装Apache
用Linux虚拟机手工编译安装Apache Apache网站服务器:作为LAMP架构的前端,是一款功能强大.稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页.图片等文件内容. 实 ...
- linux源码编译安装apache( httpd-2.4.53)处理服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)
linux源码编译安装apache 首先我们需要下载相关的依赖包 apr.apr-util.pcre 下载地址 http://archive.apache.org/dist/apr/apr-1.7.0 ...
- Linux源码编译安装apache httpd2.4.48
Apache httpd httpd是Apache基金会的HTTP服务器项目:HTTP Server project httpd-2.4系列本版,依赖于apr-1.4+, apr-util-1.4+ ...
- linux14.04 Apache,Ubuntu 14.04编译安装Apache
Ubuntu下编译安装apache需要预先编译安装多个依赖件,包括:apr, apr-util,pcre,zlib-devel,等,相当麻烦,记录于此备查. 由于Ubuntu系统默认安装时没有安装C+ ...
- centos php编译安装mysql_CentOS手动编译安装Apache、PHP、MySQL
64位CentOS 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...
- CENTOS编译安装APACHE 2.4.6笔记
之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧. ...
最新文章
- NHibernate.Validator 实体验证框架
- Go gin使用html模板
- JPA @Embeddable和@Embedded
- java文件读写操作类
- 解决在vue init webpack my-project卡住的问题(已解决)
- linux环境安装 kafka 0.8.2.1 jdk1.6
- Java最后_Java最后一次总结
- 优先级(HTML、CSS)
- Maven项目的目录结构+maven的安装与配置
- JAVA 实现生命游戏
- “人肉搜索”名词解释
- Linux ida 代码,[分享][下载]IDA Pro 7.5 Linux Demo
- Electron构建魔兽世界插件更新安装
- 【饥饿游戏搜索算法】基于饥饿游戏搜索算法求解单目标优化问题(HGS)含Matlab源码
- ZZULIOJ 1138: C语言合法标识符
- 三层vxlan原理_网工知识角|没人会告诉你的网络SDN软定义技术中VXLAN的4个特点
- 网页上如何禁止复制(如何复制xx网站上的内容)
- 获取bing壁纸php,php获取bing每日壁纸的示例
- wlacm 骑马修栅栏 (图的遍历)题解
- probability是什么意思_probability是什么意思_probability怎么读_probability翻译_用法_发音_词组_同反义词_可能性-新东方在线英语词典...
热门文章
- 全球自动驾驶第一梯队“成团出道”,谁站 C 位?
- 我是如何在六个月内学会 Python 的?
- Python、Go、JavaScript、Rust 将长盛 5 年!
- 如何将 Python 的一个类方法变为多个方法?
- 腾讯回应“暴力裁员”;小米否认常程与联想签有竞业禁止条款;NumPy 1.16.6 发布 | 极客头条...
- 现在大厂面试,也太太太太太难了吧!
- 台前与幕后的 5G 战争
- 该如何弥补 GitHub 功能缺陷?
- 全面解析腾讯最新开源 loT 操作系统 TencentOS tiny!
- 库克谈“唱衰苹果”:一派胡言!