博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25
阅读量:4511 次
发布时间:2019-06-08

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

所需源码包:

/usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz

编译安装 Apache2.2.25

#切换到源码目录

cd /usr/local/src/Apache-2.2.25tar -xzvf ./httpd-2.2.25.tar.gzcd ./httpd-2.2.25

#生成configure

./configure --prefix=/usr/local/apache --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-ssl=shared --enable-headers=shared --enable-rewrite=shared --enable-static-support --with-mpm=prefork

#编译

make && make install

编译参数解释:

--prefix=/usr/local/apache :指定安装目录

--with-included-apr : 在编译时强制使用当前源代码中绑定的APR版本
--enable-so : 允许运行时加载DSO模块(注意:so模块需静态(static)编译)
--enable-deflate=shared : 将deflate模块编译为DSO
--enable-expires=shared : 将expires模块编译为DSO
--enable-ssl=shared : 将ssl模块编译为DSO
--enable-headers=shared : 将headers模块编译为DSO
--enable-rewrite=shared : 将rewrite模块编译为DSO
--enable-static-support : 使用静态连接(默认为动态连接)编译所有二进制支持程序
--with-mpm=prefork : 使用prefork形式的mpm

更详细的编译参数解释:

cp ./build/rpm/httpd.init  /etc/init.d/httpd  #使用init脚本管理httpdchmod 755 /etc/init.d/httpd  #增加执行权限chkconfig --add httpd  #添加httpd到服务项chkconfig --level 2345 httpd on  #设置开机启动chkconfig --list httpd  #查看是否设置成功mv /etc/httpd  /etc/httpd_old  #移走旧的httpd文件夹ln -s /usr/local/apache  /etc/httpd  #建立httpd的软链接,#到时候,Apache的配置文件路径为 /etc/httpd/conf/httpd.conf,其实真实路径为 /usr/local/apache/conf/httpd.confln -sf /usr/local/apache/bin/httpd  /usr/sbin/httpd  #设置软链接以适应init脚本ln -sf /usr/local/apache/bin/apachectl  /usr/sbin/apachectlrm -rf /var/log/httpd/ln -s /usr/local/apache/logs  /var/log/httpdgroupadd apache #添加apache用户组及用户useradd -g apache -s /usr/sbin/nologin apachechown -R apache:apache /usr/local/apache

配置防火墙,开启80端口

vim /etc/sysconfig/iptables

#添加如下规则到22端口这条规则的下面即可

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

#重启防火墙

service iptables restart # 或 /etc/init.d/iptables restart

启动Apache

service httpd start # 或 /etc/init.d/httpd start

 

 

 


 

关于mpm模式的选择,“海哥CentOS博客”的“LAMP一键安装包”推荐如下:

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

echo "select the mpm of apache"
echo "1) prefork (Recommend)"
echo "2) worker (Multi-threaded)"
echo "3) event (Multi-threaded,not support ssl.)"
===================================================

附:

 


 

在Apache的源码目录,运行命令 ./configure -help 可查看所有编译参数解释:

【官网编译参数详解:】

Apache以模块的形式扩展自己,而模块编译分为 静态(static)编译 和 动态(shared)编译,静态编译的模块会直接编译进Apache的核心,而动态编译的模块,还需修改Apache的配置文件,方可被加载。以下是摘自Apache的官方手册,解释模块的编译参数。

模块选项

有两种使用模块的方法:一是静态连接进核心,二是作为DSO模块动态加载;如果编译中包含任何DSO模块,则mod_so会被自动包含进核心。如果希望核心能够装载DSO,但不实际编译任何DSO模块,则需明确指定"--enable-so=static"。

一般语法

一般情况下你可以使用如下语法启用或者禁用某个模块:

上述 MODULE-LIST 可以是:

(1)用引号界定并且用空格分隔的模块名列表

--enable-mods-shared='headers rewrite dav'

(2)"most"(大多数模块[遇见错误模块时忽略该模块而不中断配置过程])

(3)"all"(所有模块[遇见错误模块时中断配置过程并报错])

--enable-mods-shared=most

--disable-MODULE

禁用MODULE模块(仅用于基本模块)

--enable-MODULE=shared

MODULE编译为DSO(可用于所有模块)

--enable-MODULE=static

MODULE静态连接进核心(仅用于扩展和实验模块)

--enable-mods-shared=MODULE-LIST

MODULE-LIST中的所有模块都编译成DSO(可用于所有模块)

--enable-modules=MODULE-LIST

MODULE-LIST静态连接进核心(可用于所有模块)

注意

configure将忽略
MODULE
MODULE-LIST中的拼写错误,注意仔细拼写。用于
MODULE
MODULE-LIST中的名称是"
mod_NAME"中去掉"
mod_"并将剩余部分中的下划线"
_"替换为连字符"
-"以后的结果,比如"
mod_log_config"模块应当表示为"
log-config"。

模块列表

基本(B)模块默认包含,必须明确禁用;扩展(E)/实验(X)模块默认不包含,必须明确启用。

模块名称 状态 简要描述
(B) 根据特定的媒体类型或请求方法,激活特定的CGI脚本
(B) 提供从文件系统的不同部分到文档树的映射和URL重定向
(B) 发送自己包含HTTP头内容的文件
(B) 使用基本认证
(B) 在未正确配置认证模块的情况下简单拒绝一切认证信息
(B) 使用纯文本文件为认证提供支持
(B) 在未正确配置授权支持模块的情况下简单拒绝一切授权请求
(B) 使用纯文本文件为组提供授权支持
(B) 供基于主机名、IP地址、请求特征的访问控制
(B) 基于每个用户提供授权支持
(B) 自动对目录中的内容生成列表,类似于"ls"或"dir"命令
(B) 在非线程型MPM()上提供对CGI脚本执行的支持
(B) 在线程型MPM()上用一个外部CGI守护进程执行CGI脚本
(B) 指定目录索引文件以及为目录提供"尾斜杠"重定向
(B) 允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量
(B) 根据上下文实际情况对输出过滤器进行动态配置
(B) 处理服务器端图像映射
(B) 实现服务端包含文档(SSI)处理
(B) 仅限于在Windows平台上实现ISAPI扩展
(B) 允许记录日志和定制日志文件格式
(B) 根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码)
(B) 提供支持
(B) 仅限于在NetWare平台上实现SSL加密支持
(B) 根据客户端请求头字段设置环境变量
(B) 生成描述服务器状态的Web页面
(B) 允许用户从自己的主目录中提供页面(使用"/~username")
(X) 使用MD5摘要认证(更安全,但是只有最新的浏览器才支持)
(E) 基于实际认证支持者创建扩展的认证支持者,并为它起一个别名以便于引用
(E) 提供匿名用户认证支持
(E) 使用SQL数据库为认证提供支持
(E) 使用DBM数据库为认证提供支持
(E) 允许使用一个LDAP目录存储用户名和密码数据库来执行基本认证和授权
(E) 使用DBM数据库文件为组提供授权支持
(E) 基于文件的所有者进行授权
(E) 基于URI键的内容动态缓冲(内存或磁盘)
(E) 允许Apache使用CERN httpd元文件,从而可以在发送文件时对头进行修改
(X) 允许对页面进行字符集转换
(E) 允许Apache提供协议支持
(E) 访问服务器上的文件系统提供支持
(E) 锁定服务器上的文件提供支持
(E) 管理SQL数据库连接,为需要数据库功能的模块提供支持
(E) 压缩发送给客户端的内容
(E) 基于磁盘的缓冲管理器
(E) 将所有I/O操作转储到错误日志中
(X) 一个很简单的协议演示模块
(X) 一个很简单的Apache模块API演示模块
(E) 允许通过配置文件控制HTTP的"Expires:"和"Cache-Control:"头内容
(E) 使用外部程序作为过滤器
(X) 提供文件描述符缓存支持,从而提高Apache性能
(E) 允许通过配置文件控制任意的HTTP请求和应答头信息
(E) 实现RFC1413规定的ident查找
(E) 生成Apache配置情况的Web页面
(E) 为其它LDAP模块提供LDAP连接池和结果缓冲服务
(E) 实现"对比日志",即在请求被处理之前和处理完成之后进行两次记录
(E) 对每个请求的输入/输出字节数以及HTTP头进行日志记录
(E) 基于内存的缓冲管理器
(E) 通过读取部分文件内容自动猜测文件的MIME类型
(E) 提供HTTP/1.1的代理/网关功能支持
(E) 的扩展,提供Apache JServ Protocol支持
(E) 的扩展,提供负载平衡支持
(E) 的扩展,提供对处理HTTP CONNECT方法的支持
(E) 的FTP支持模块
(E) 的HTTP支持模块
(E) 一个基于一定规则的实时重写URL请求的引擎
(E) 允许运行时加载DSO模块
(E) 自动纠正URL中的拼写错误
(E) 使用安全套接字层(SSL)和传输层安全(TLS)协议实现高强度加密传输
(E)
(E) 为每个请求生成唯一的标识以便跟踪
(E) 使用Session跟踪用户(会发送很多Cookie),以记录用户的点击流
(E) 提供基于版本的配置段支持
(E) 提供大批量虚拟主机的动态配置支持

多路处理模块(MPM)

必须有而且只能有一个被静态包含进核心,你可以使用下面的配置选项进行选择:

--with-mpm=MPM

其中,MPM是你想要使用的多路处理模块的名字。如果你不使用这个选项,那么将会使用对应于各平台的,可选的MPM如下:

 

 

 

延伸阅读:

 

转载于:https://www.cnblogs.com/52php/p/5668839.html

你可能感兴趣的文章
CAP原理
查看>>
动态加载主题
查看>>
leetcode[125]Valid Palindrome
查看>>
访问一个绝对地址把一个整型数强制转换 (typecast)为一个指针是合法的
查看>>
iOS项目开发之Socket编程 (转)
查看>>
C++ NULL与nullptr的区别
查看>>
Discretized Streams, 离散化的流数据处理
查看>>
Spark源码分析 – SchedulerBackend
查看>>
黑马程序员 Java输入\输出
查看>>
python字符串处理
查看>>
live555学习笔记4-计划任务(TaskScheduler)深入探讨
查看>>
【Unity3D】获取鼠标在三维空间(世界坐标系)的位置
查看>>
Python虚拟机函数机制之名字空间(二)
查看>>
线段树
查看>>
SharePoint2010联合搜索——Google、百度
查看>>
php静态
查看>>
python基础之文件操作
查看>>
PAT B1033 旧键盘打字
查看>>
Fedora 8/9更新换源和更新中断解决方法
查看>>
[唐胡璐]Selenium技巧 - 定制元素属性检查,并写到ReportNG中
查看>>