ApacheBench(ab)安装篇

编译和安装

这篇文档只适用于在Unix和类Unix系统上安装的Apache HTTP 服务器的编译和安装。

先睹为快

下载 http://httpd.apache.org/download.cgi

解压
    $ gzip -d httpd-NN.tar.gz
    $ tar xvf httpd-NN.tar
    $ cd httpd-NN
配置
    $ ./configure --prefix=PREFIX
编译
    $ make
安装
    $ make install
自定义
    $ vi PREFIX/conf/httpd.conf
测试
    $ PREFIX/bin/apachectl -k start

NN必须用当前版本号替换,PREFIX必须用服务器安装的文件系统路径替换。如果PREFIX没有指定,默认是/usr/local/apache2

要求

下面是构建Apache HTTPd的要求:

硬盘空间

确保至少有50M 的临时自由硬盘空间可用。Apache安装后会占用10M左右的硬盘空间。
实际需要的硬盘空间会基于你选择的配置选项和任何第三方模块而改变。

ANSI-C编译器和构建系统

确保你已经安装了ANSI-C编译器。推荐自由软件联盟的GUN C(GCC)编译器。如果没有按照GCC,请至少确保你的供应商编译器支持ANSI。另外,你的PATH必须包含基础构建工具比如make

精确的时间同步

HTTP协议的元素表示为一天中不同的时间。因此,是时候研究一下你系统中的一些时间同步设备的设置了。通常基于网络时间协议(NTP)的ntpdatexntpd 程序来做这件事。

Perl 5[可选]

对于一些支持的脚本,比如apxsdbmmanage (Perl写的),需要Perl 5解释器(5.003及以上版本)。如果配置的脚本没有发现Perl 5 解释器,你就不能使用受影响的支持脚本。当然,你仍然可以构建和使用Apache HTTPd。

apr/apr-util >= 1.4

aprapr-util 与Apache HTTPd的源码发布绑定,几乎在任何环境下都没有问题。然而,如果你的系统安装的是1.0,1.1,1.2版本的apr或者apr-util,你必须将其升级到1.4,强迫使用绑定库或者使httpd使用分离构建。要使用绑定的apr / apr-util源码需要指定--with-included-apr选项来配置:

注意:--with-included-apr 选项在2.2.3版本添加的。

# Force the use of the bundled apr/apr-util
./configure --with-included-apr

建立针对手动安装Apache HTTPd的 apr/apr-util:

# Build and install apr 1.4
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install

# Build and install apr-util 1.4
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install

# Configure httpd
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/
下载

Apache HTTP Server 可以从Apache HTTP Server 的网站下载,网站上有一些镜像列表。类unix系统的Apache HTTPd 的大多数使用者更喜欢下载和编译源码版本。构建过程很容易,允许你自定义服务器来满足自己的需求。另外,二进制发布版一般跟不上最新源码版本的更新速度。The Apache HTTP Server can be downloaded from the Apache

下载以后,要验证你下载的是一个完整的没有修改过的Apache HTTP Server版本。这个可以通过测试已下载的针对PGP签名的tar包。

解压

Extracting the source from the Apache HTTPd tarball is a simple matter of uncompressing, and then untarring:
提取Apache HTTPd tarball 的源码解压就行,然后解包:

$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar

之后会在当前目录下生成一个包含源码的新目录。进入这个目录后,开始编译。

配置源码树

下一步是根据你的特殊平台和个人需求配置Apache HTTPd 源码树。可以使用包含在根目录下的脚本配置来完成这个功能。(下载Apache HTTPd 源码树的非发布版的开发者需要安装过autoconf 和libtool,并且需要在下一步之前运行构建配置。对官方发布版的用户来说这个不是必要的。)

使用全部默认选项来配置源码树的话,只需要输入./configure 。要改变默认选项的话,configure需要接受一些变量和命令行选项。

--prefix是最重要的选项,它表示Apache HTTP Server 稍后要被安装的地方,因为
Apache HTTPd 要想正常工作就得配置这个位置。

在这里,你也可以通过启用和禁用模块将想要的特性包含到Apache HTTPd中。Apache HTTPd Server默认包含了一组基础模块。其他模块通过指定--enable-module 选项来启用,模块是指那些mod_string 被移除掉和下划线被转换成破折号的。你也可以选择将模块编译成共享对象(DSOs)——可以被运行时加载或者卸载的——通过选项--enable-module=shared 。类似地,你可以通过使用--disable-module 选项来禁用基础模块。使用这些选项时要小心,因为如果你指定的模块不存在的话,配置不会提醒你:而仅仅是忽略掉选项。

另外,有时候必须提供有关于你的编译器,库或者头文件的位置这些额外信息的配置脚本。这些可以通过传递环境变量或者命令行选项的形式传递给配置。

为了给你一个简单的印象,这里提供了一个经典的例子:用一个特殊的编译器和标志,加上另外两个模块mod_rewritemod_speling ,来为安装树/sw/pkg/apache 编译Apache并稍后通过DSO机制加载。

$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared

配置运行需要几分钟时间去测试系统中特性的可用性,并且构建之后编译服务器要使用的编译文件。

构建

现在你可以通过运行
$ make
命令来构建Apache HTTPd 包的不同部分。
这里请耐心点,因为这里的基础配置需要花费几分钟去编译,而且时间会随你的硬件和启用的模块数量而大幅变化。

安装

现在可以通过运行

make install

命令来将包安装在配置的PREFIX路径了。
如果你正在更新,安装不会覆盖你的配置文件和文档。

自定义

接下来,你可以通过编辑PREFIX/conf/ 路径下的配置文件来自定义你的Apache HTTP Server

$ vi PREFIX/conf/httpd.conf
测试

现在,你可以通过运行

$ PREFIX/bin/apachectl -k start

启动你的Apache HTTP Server 了。
然后,你可以通过http://localhost/ 请求你的第一份文档。你看到的页面在DocumentRoot 下,通常是PREFIX/htdocs 。然后通过运行

$ PREFIX/bin/apachectl -k stop

停掉服务器。

更新

更新的第一步是阅读发布文档和源码包中的CHANGES文件,看看哪些改变会影响你的网站。如果大版本发生改变(比如从1.3到2.0或者从2.0到2.2),可能在编译时和运行时配置会有很大改变,这个需要手动调整。所有的模块都需要更新去适应模块API中的改变。

更新一个小版本(比如从2.2.55到2.2.57)要容易的多。编译安装进程不会覆盖你的任何已存在的文档,日志文件或配置文件。另外,开发者努力去避免小版本之间配置选项,运行时配置或者模块API中的不兼容的修改。多数情况下,你应该可以使用相同的配置命令行,相同的配置文件,和所有需要继续工作的模块。

更新小版本,首先要找到安装的服务器的构建目录下或者已安装的源码树的根目录下的config.nice 文件。这个文件包含了配置源码树的准确的配置命令行。然后更新到下一个版本,你只需要将config.nice 文件复制到新版本的源码树中,在文件中对任何需要的改变进行编辑,然后运行:

$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start

在将新版本应用到生产环境之前,应该在本地环境中进行测试。例如,最终更新前,你可以使用不同于老版的--prefix 和端口(通过调整监听指令)来测试不兼容性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值