CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25

所需源码包:

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

编译安装 Apache2.2.25

#切换到源码目录

cd /usr/local/src/Apache-2.2.25
tar -xzvf ./httpd-2.2.25.tar.gz
cd ./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

更详细的编译参数解释:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html

cp ./build/rpm/httpd.init  /etc/init.d/httpd  #使用init脚本管理httpd
chmod 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.conf

ln -sf /usr/local/apache/bin/httpd  /usr/sbin/httpd  #设置软链接以适应init脚本
ln -sf /usr/local/apache/bin/apachectl  /usr/sbin/apachectl

rm -rf /var/log/httpd/
ln -s /usr/local/apache/logs  /var/log/httpd

groupadd apache #添加apache用户组及用户
useradd -g apache -s /usr/sbin/nologin apache
chown -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常用2种工作模式prefork和worker比较



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

【官网编译参数详解:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html

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

模块列表

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

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

多路处理模块(MPM)

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

--with-mpm=MPM

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

延伸阅读:

CentOS6.x编译安装LAMP(1):准备工作

CentOS6.x编译安装LAMP(2):编译安装 Apache2.2.25

CentOS6.x编译安装LAMP(2):编译安装 Apache2.4.6

CentOS6.x编译安装LAMP(3):编译安装 MySQL5.5.25

CentOS6.x编译安装LAMP(4):编译安装 PHP5.2.17

CentOS6.x编译安装LAMP(4):编译安装 PHP5.3.27

PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展?

Apache常用2种工作模式prefork和worker比较

时间: 2024-10-14 18:30:24

CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25的相关文章

Linux下源码安装LAMP(CentOS 6.8 + Apache2.4 + MySQL5.5 + PHP7)环境

一.简介 PHP已经走过了20年的历史,PHP7对于上一版本的PHP5.*,在性能方面有了跨越式的提升,当然也有一些新增的特性和改变,具体大家可以参考网上更为详细的相关资料文档. 二.系统环境 系统平台:CentOS release 6.8 (Final) Apache版本:httpd-2.4.6.tar.gz MySQL 版本:mysql-5.5.53.tar.gz PHP版本:php-7.1.0.tar.gz 三.安装前准备 1.库文件准备 在安装PHP之前,应先安装PHP需要的最新版本库文

开发人员学Linux(8):CentOS7编译安装Subversion1.9.5及Apache2.4.25并集成

1.前言本篇将介绍如何编译安装SVN服务器端管理软件subverion和Web服务器Apache.本来在前面的系列文章已经讲过使用Nginx作为Web服务器的,所以我一直在找有关subverion集成nginx的资料,在此过程中找到了Nginx作者Igor Sysoev在回答别人类似问题的网址,网址是http://mailman.nginx.org/pipermail/nginx/2007-January/000504.html,不过按照Igor Sysoev的回答并没有成功,因此仍回到Apac

安装lamp之 一键安装php

#!/bin/sh #一键安装php #xiaogao 20190921 #安装依赖包: yum install zlib libxml libjpeg freetype libpng gd  curl libiconv  zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel  libxslt-devel openssl* -y #上面安装完还是没有libiconv库,需要编译

编译安装LAMP(一)——编译安装httpd-2.4.4

1.解决依赖关系httpd-2.4.4需要较新版本的apr(apache portable runtime)和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包.这里选择使用编译源代码的方式进行.(1) 编译安装apr # tar xf apr-1.4.6.tar.bz2 # cd apr-1.4.6 # ./configure --prefix=/usr/local/apr # make && make instal (2) 编译

编译安装LAMP(三)——编译安装php-5.4.13

1.解决依赖关系:如果想让编译的php支持mcrypt扩展,需要下载如下两个rpm包并安装之:libmcrypt-2.5.7-5.el5.i386.rpmlibmcrypt-devel-2.5.7-5.el5.i386.rpm 注:www.rpmfind.net 2.编译安装php-5.4.13首先下载源码包至本地目录,下载位置ftp://172.16.0.1/pub/Sources/new_lamp. # tar xf php-5.4.13.tar.bz2 # cd php-5.4.13 # 

编译安装LAMP(二)——编译安装MySQL-5.5.28

1.准备数据存放的文件系统新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化mysql-5.5.28首先下载平台对应的m

安装lamp之 一键安装单实例mysql

#!/bin/sh #一键安装单实例mysql #xiaogao 20190921 #创建相关mysql用户 groupadd mysql useradd -s /sbin/nologin -g mysql -M mysql tail -1 /etc/passwd #安装mysql依赖库 yum -y install ncurses-devel #开启安装mysql,记得先上传安装包到/home/lvnian/tools/ cd /home/lvnian/tools/ tar zxf mysql

CentOS 6.3下源码编译安装LAMP

一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件.    LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字.这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便 的随时获得并免费使用,这就导致了这些

Centos6.5添加Epel和Remi源安装Lamp环境

想搭建一个Lamp环境,因为编译安装太麻烦,对于我这样的新手来说,太过于复杂.而CentOS自带的Apache.MySql和PHP的版本都太低,不想用.上百度搜了一轮,原来可以通过添加Epel和Remi源来解决.对于Epel源和Remi源,网友是这样介绍的: EPEL源 EPEL,即Extra Packages for Enterprise Linux,是由 Fedora 社区创建维护,为 RHEL 及衍生发行版如 CentOS.Scientific Linux 等提供高质量软件包的项目.EPE

CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件.    LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字.这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便的随时获得并免费使用,这就导致了这些组