Apache 2.0 unix下面的安装
本文仅阐述Apache在Unix和类Unix系统中的编译和安装,在Windows中的编译和安装可以参见Using Apache with Microsoft Windows,其他平台可以参见platform。
Apache 2.0的安装配置环境与Apache 1.3完全不同了。Apache 1.3使用了一个自定义的脚本来简化安装;而Apache
2.0现在也象其他许多开放代码工程一样,利用libtool
和autoconf
来建立安装环境。
Download |
$ lynx
http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz |
Extract |
$ gzip -d httpd-2_0_NN.tar.gz $ tar xvf
httpd-2_0_NN.tar |
Configure |
$ ./configure --prefix=PREFIX |
Compile |
$ make |
Install |
$ make install |
Customize |
$ vi PREFIX/conf/httpd.conf |
Test |
$ PREFIX/bin/apachectl start
|
其中NN必须用当前副版本号替代;PREFIX是服务器被装到文件系统中的路径名,如果没有指定PREFIX,默认会被装到/usr/local/apache2
。
下面会详细阐述编译和安装的每个步骤,先从编译和安装Apache HTTPD的要求开始。
编译Apache的要求如下:
磁盘空间
必须保证有50MB以上的临时磁盘自由空间。Apache安装完毕后会占据10MB左右的空间,实际磁盘需求会因编译设置和是否安装第三方模块而有所不同。
ANSI-C编译器及其支持环境
必须装有ANSI-C编译器,推荐使用来自Free
Software Foundation (FSF)的GNU C compiler
(GCC)(2.7.2版本很好)。如果没有GCC,那么要确保现有的编译器符合ANSI标准,而且PATH
中必须包含指向基本编译工具比如make
的路径。
确保正确的时间
由于HTTP协议的元素都会用到时间,有必要了解一下你的系统的时间同步机制。在基于Network Time Protocol
(NTP)的系统中,一般是用ntpdate
或xntpd
来同步时间。有关NTP软件和公共时间服务器的资料请参见Usenet新闻组comp.protocols.time.ntp和NTP homepage。
Perl 5 [可选]
有些用Perl写的支持脚本,如apxs和dbmmanage,会需要Perl
5解释器(5.003或以上版本就足够了),如果`configure
'没找到这样的解释器也没关系,并不影响Apache
2.0的编译和安装,只是这些支持脚本不能用而已。如果系统中存在多个Perl 解释器,比如有厂商提供的Perl 4,还有你自己找来的Perl
5,推荐用--with-perl
选项来确保脚本./configure
使用正确的版本。
Apache可以从Apache
Software Foundation download site及其镜像站点下载。
版本号缀有alpha
的是预测试版本,其运行可能正常也可能不正常;缀有beta
的是仍需要测试和纠错的较可靠的版本。要下载最好的Apache
HTTP Server的发行版,就应该选择最新的,而且文件名中既没有alpha
也没有beta
的版本。
下载完毕后,尤其是从镜像站点下载的,应该对下载来的tar包作PGP签名校验,以确保其完整而且未被篡改过。校验有两个步骤,第一步,必须从Apache distribution
site获得一个密钥(KEYS)
(为确保此密钥
文件本身未被篡改,使用Apache早先发行版中的或者导入来自公共密钥服务器的密钥也许是个好办法),用以下命令导入到你的个人密钥环中(可能会因你的PGP版本有所不同):
或
第二步,从main Apache
website获得PGP签名以校验tar包。这个签名的文件名由其原tar包文件名后附加.asc
组成。接着,用以下命令来校验发行版(也可能会因你的PGP版本有所不同):
$ pgp httpd-2_0_NN.tar.gz.asc
或
$ gpg --verify httpd-2_0_NN.tar.gz.asc
应该会看见这样的信息:
Good signature from user "Martin Kraemer
<martin@apache.org>".
也可能会看见“the relationship between the key and the signer of the key cannot be
verified”的信息,其原因与你的密钥环中的信任关系有关,如果你信任这个密钥
文件,那就没关系。
解压Apache HTTPD的tar包很简单:
$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf
httpd-2_0_NN.tar
这样就在当前目录下新建了一个包含发行版源代码的目录,必须cd
进入这个目录以继续服务器的编译。
这一步是为你的特定平台和个人需求设置代码树。位于发行版主目录的configure
脚本会完成这个步骤(对下载Apache源代码树的CVS版本的开发者,需要装有autoconf
和libtool
,并执行buildconf
,对于官方发行版则没必要)。
简单执行./configure
可以用所有的默认值设置代码树,同时./configure
可以接受命令行参数以改变默认值。通常,环境变量要预先设置,其他选项可以跟在./configure
后面。除了许多迎合你的需求的选项,最重要的选项是指示Apache应该被装在哪个目录的目录前缀(prefix),因为Apache需要这个目录以正常运作。
为了让你对能指定什么有一个简单的印象,此例演示编译Apache,用了一个特定的编译器及其编译参数,而且允许今后通过DSO机制动态装载两个附加的模块modules
mod_rewrite和mod_speling:
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache
\
--enable-rewrite=shared \
--enable-speling=shared
configure
需要运行几分钟,以测试功能是否在你的系统中有效,并建立稍后编译服务器所需要的许多Makefile。
获得Apache设置参数的最简单方法是执行./configure --help
,其中有对大多数参数和环境变量的简要说明。
autoconf
编译进程用了几个环境变量来设置编译环境。通常,这些变量只是改变如何编译Apache,而不是改变服务器最终的功能。可以在执行configure
之前预先设置这些变量,而更简单的方法是象上面例子那样,直接在configure
的命令行中指定。
CC=...
C编译器的名称
CPPFLAGS=...
各种C预处理和编译器参数
CFLAGS=...
C编译器的调试和优化参数
LDFLAGS=...
各种连接器参数
LIBS=...
连接器的库位置信息("-L" and "-l"参数)
INCLUDES=...
头文件的搜索目录("-Idir").
TARGET=...
[Default: apache]
目标执行文件名
NOTEST_CPPFLAGS=...
NOTEST_CFLAGS=...
NOTEST_LDFLAGS=...
NOTEST_LIBS=...
这些参数与不带NOTEST
的同名参数功能相同,但是,它们仅在autoconf执行功能测试以后才起作用,如此就允许包含以后编译时必须的而在功能测试时会出错的参数。
SHLIB_PATH=...
编译器和连接器共享的库路径
--help
显示所有有效参数的用法,而并不实施任何设置
--quiet
阻止一般的"checking..."信息的出现
--verbose
在设置过程中详细显示包括被检测文件名的信息
目前有两种方法设置Apache安装其文件的路径名。首先,可以指定一个目录来安装Apache本身。
--prefix=PREFIX
[Default: /usr/local/apache2]
使Apache的文件装在这个目录下
还可以把内定结构的文件装在其他目录。
--exec-prefix=EPREFIX
[Default: PREFIX]
指定安装内定结构文件的目录。
其次,使用config.layout
文件可以对各种类型的文件指定安装目录,从而更灵活地安装Apache。config.layout
文件包含了几个设置例子,你可以参照这些例子按你的需要进行设置,其中不同类型的布局用被分入各个组,如命名为FOO
的<Layout
FOO>...</Layout>
。
--enable-layout=LAYOUT
用已命名的config.layout
布局文件来指定安装目录。
Apache是模块化的服务器,核心服务器种只包含了功能最常用的模块,而扩展功能由其他模块提供。设置过程中,你必须指定需要包含的模块。文档中有模块清单备查,其中状态为"Base"的模块会被默认地包含进核心服务器,如果你不需要包含某个模块(比如mod_userdir
),则必须明确地禁用它;其他状态的模块(比如mod_expires
),也必须明确启用以使之包含进核心服务器。
Apache有两种使用模块的方法,其一是永久性包含进核心;如果操作系统支持动态共享对象(DSO),而且能为autoconf
所检测,则模块还可以被动态编译。DSO模块的存储是独立与核心的,可以被核心使用由mod_so
模块提供的运行时刻配置指令包含或排除。如果编译中包含有任何动态模块,则mod_so模块会被自动包含进核心。如果希望核心能够装载DSO,而不实际编译任何动态模块,需要明确指定--enable-so
。
--enable-MODULE[=shared]
编译并包含模块MODULE。MODULE是文档中去掉"_module"的模块名。要将一个模块编译成DSO,需要加=shared
选项。
--disable-MODULE
排除可能被编译并包含的模块MODULE。
--enable-modules=MODULE-LIST
编译并包含用空格分隔的MODULE-LIST。
--enable-mods-shared=MODULE-LIST
编译并包含用空格分隔的MODULE-LIST成DSO。
--enable-modules
和--enable-mods-shared
中的MODULE-LIST选项通常是一个用空格分隔的模块列表,例如编译并包含enable
mod_dav and mod_info,可以
./configure --enable-dav --enable-info
或者,等效地写成:
./configure --enable-modules="dav info"
另外,可以用关键字all
或most
一次性包含“所有的”或者“大多数”模块,然后再用--disable-MODULE
来排除你不需要的模块。例如,包含所有的模块为DSO,而排除mod_info,可以
./configure --enable-mods-shared=all --disable-info
除了标准模块组,Apache 2.0还提供了一个选择,就是多道处理模块(Multi-Processing
Modules)(MPMs)。编译过程中必须包含一个且只有一个MPM,MPM documentation
page有对应各种平台的默认MPM,但是也可以在configure
命令行中改变。
--with-mpm=NAME
选择叫NAME的MPM.
Apache的某些功能,如mod_auth_dbm
和 mod_rewrite
中的DBM RewriteMap
使用简单的 键/值
数据库来实现信息快速检索。Apache内置了支持SDBM的源代码,所以数据库总是被支持的。如果要使用其他数据库类型,可以使用的configure
选项有:
--with-gdbm[=path]
--with-ndbm[=path]
--with-berkeley-db[=path]
如果没有指定path,Apache会在常规搜索路径中寻找头文件和库;明确地指定path会引导Apache到path/lib
和path/include
中寻找这些文件,另外,path可以指定特定的头文件和库的路径,并用冒号隔开。
Apache包含了一个叫suexec的支持程序,可以隔离用户的CGI程序。但是,如果suexec没有被正确配置,会引发严重的安全问题,使用这个功能以前,应该仔细阅读和斟酌suexec documentation。
执行这个命令就可以编译Apache了
请耐心等候,因为对一个基本的配置的编译,在Pentium III/Linux
2.2上需要运行3分钟左右,实际需要的时间因你的硬件和选择的模块数量会有很大不同。
现在可以在PREFIX目录(参见上述的--prefix
参数)下安装包了,执行:
如果是升级,安装程序不会覆盖你的配置文件和文档。
现在,可以执行这个命令立即启动你的Apache HTTP服务器:
$ PREFIX/bin/apachectl start
你应该可以用URL http://localhost/
来请求你的第一个网页了,这个网页位于DocumentRoot
目录下,通常是PREFIX/htdocs/
。随后,可以这样停止服务器:
$ PREFIX/bin/apachectl stop
分享到:
相关推荐
7. **兼容性**:Apache 2.0支持多种操作系统,包括Windows、Linux、Unix等,并且与PHP、Perl、Python等脚本语言以及MySQL、PostgreSQL等数据库有良好的集成,为Web应用程序开发提供便利。 在解压并运行httpd-2.0.63...
1. **Apache 2.0概述**:Apache 2.0是一个免费的、跨平台的HTTP服务器,支持多种操作系统,包括Linux、Windows、Unix等。它提供了强大的功能,如模块化设计、高性能、高可配置性和稳定性。 2. **模块化设计**:...
Apache手册将详细介绍这些特性和配置方法,包括如何安装、配置、管理和优化Apache服务器,以及如何解决常见问题。它不仅是管理员的宝贵参考资料,也是开发人员和运维人员必备的工具书。通过深入阅读和实践,你可以更...
Apache 2.0在诸如BeOS,OS/2和Windows等非Unix平台上有了更好的速度和稳定性。 随着平台特定的multi-processing modules(MPMs)和 Apache Portable Runtime (APR)的引入,Apache在这些平台上的指令由它们本地的API...
2. **安装与配置**:文档会详细解释如何在不同操作系统上安装Apache服务器2.0,包括Windows、Linux和Unix等。此外,还会介绍如何配置httpd.conf文件以满足特定的服务器需求,如设置监听端口、虚拟主机、日志文件等。...
1. **Prefork MPM**:这是Apache 2.0默认采用的一种MPM,适用于大多数传统的Unix系统。在这种模式下,Apache预先创建一定数量的工作子进程等待客户端连接,每个子进程只处理一个请求,处理完成后返回到空闲状态等待...
书中首先介绍了如何在Linux/Unix或Win32系统上配置Apache服务器,这是基础中的基础。Apache服务器是目前全球最流行的Web服务器软件之一,能够高效、稳定地处理大量并发访问。对于在不同操作系统上的安装与配置,书中...
1. **安装与配置**:Apache 2.0的安装过程涵盖多种操作系统,包括Windows、Linux和Unix。文档会详细介绍如何下载源代码或预编译的二进制包,以及如何配置服务器以满足特定需求,如设置监听端口、配置虚拟主机和指定...
本文将详细介绍如何在Microsoft Windows平台上安装、配置和运行Apache 2.0版本。 #### 二、环境准备 在安装Apache之前,我们需要确保系统环境满足以下条件: - **操作系统**: 支持Windows NT 4.0、Windows 2000、...
- 书中详细介绍了如何在各种操作系统上安装Apache Server 2.0,包括Windows 9X/2000/Me/XP、Linux以及Unix系统。 - 配置Apache涉及的各个方面,如虚拟主机设置、模块管理、日志记录、错误处理等。 2. **Web服务器...
该版本提供了对新硬件的支持,包括USB 2.0、Intel Pentium 4、Intel Xeon、AMD Athlon XP和AMD Athlon MP,以及集成的开放源代码库和工具,如Samba、Mozilla、OpenSSL、OpenSLP、OpenSSH、OpenLDAP、Perl和Apache。...
Apache 2.0在诸如BeOS,OS/2和Windows等非Unix平台上有了更好的速度和稳定性。 随着平台特定的multi-processing modules(MPMs)和 Apache Portable Runtime (APR)的引入,Apache在这些平台上的指令由它们本地的API...
- **工作原理**:Prefork MPM 是 Apache 2.0 中 Unix 平台上的默认 MPM。它继承了 Apache 1.3 的预派生子进程的方式,没有使用线程。这种方式确保了进程之间的独立性,提高了系统的稳定性。 - **配置参数**: - `...
Apache 2.0 新特性概述 Unix线程 新的编译系统 多协议支持 对非Unix平台更好的支持 新的 Apache API IPv6 支持 过滤器 多语种错误应答 简化了配置 本地 Windows NT Unicode 支持 正则表达式库更新
Apache的开发人员认识到Apache 最初的架构具有局限性,比较粗糙,于是在2000年开始建立新的代码仓库(codebase)主分支,并在此代码仓库的基础上于2002年4月创建了Apache2.0的第一个发布版本。Apache 2包括以下优良...
- 配置安装路径,一般默认为`C:\Program Files\Apache Software Foundation\Apache2.0`。 - 设置端口(默认为80),确保没有其他应用占用该端口。 - 安装完成后,启动Apache服务,可以通过控制面板或命令行工具`...
这个"apache-camel-2.0-M1.tar.gz"文件是Apache Camel的2.0 Milestone 1版本的归档文件,采用tar.gz格式,这是一种在Linux和Unix系统中常见的文件打包和压缩方式。 Apache Camel 提供了一种声明式编程模型,允许...
在标题中提到的 "apache-camel-2.0-M2.tar.gz" 是 Apache Camel 的一个特定版本,即2.0 Milestone 2(M2),它被打包成一个tar.gz格式的归档文件。这种格式是Unix/Linux系统中常用的压缩方式,由tar工具用于归档文件...