编译php的vc和编译apache,Apache的编译和安装

这一步是为你的特定平台和个人需求设置代码树。位于发行版主目录的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的...。

--enable-layout=LAYOUT

用已命名的config.layout布局文件来指定安装目录。

Apache是模块化的服务器,核心服务器种只包含了功能最常用的模块,而扩展功能由其他模块提供。设置过程中,你必须指定需要包含的模块。文档中有模块清单备查,其中状态为"Base"的模块会被默认地包含进核心服务器,如果你不需要包含某个模块(比如

Apache有两种使用模块的方法,其一是永久性包含进核心;如果操作系统支持动态共享对象(DSO),而且能为autoconf所检测,则模块还可以被动态编译。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的某些功能,如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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值