首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Apache 2.0 unix 上面的安装

2012-07-03 
Apache 2.0 unix 下面的安装?Apache 2.0 unix下面的安装?本文仅阐述Apache在Unix和类Unix系统中的编译和安

Apache 2.0 unix 下面的安装

?

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现在也象其他许多开放代码工程一样,利用libtoolautoconf来建立安装环境。

./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=... 编译器和连接器共享的库路径 autoconf的输出参数--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] 编译并包含模块MODULEMODULE是文档中去掉"_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"

另外,可以用关键字allmost一次性包含“所有的”或者“大多数”模块,然后再用--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. DBM

Apache的某些功能,如mod_auth_dbmmod_rewrite中的DBM RewriteMap使用简单的 键/值 数据库来实现信息快速检索。Apache内置了支持SDBM的源代码,所以数据库总是被支持的。如果要使用其他数据库类型,可以使用的configure选项有:

--with-gdbm[=path] --with-ndbm[=path] --with-berkeley-db[=path] 如果没有指定path,Apache会在常规搜索路径中寻找头文件和库;明确地指定path会引导Apache到path/libpath/include中寻找这些文件,另外,path可以指定特定的头文件和库的路径,并用冒号隔开。 Suexec

Apache包含了一个叫suexec的支持程序,可以隔离用户的CGI程序。但是,如果suexec没有被正确配置,会引发严重的安全问题,使用这个功能以前,应该仔细阅读和斟酌suexec documentation。

Apache 2.0 unix 上面的安装编译

执行这个命令就可以编译Apache了

$ make

请耐心等候,因为对一个基本的配置的编译,在Pentium III/Linux 2.2上需要运行3分钟左右,实际需要的时间因你的硬件和选择的模块数量会有很大不同。

安装

现在可以在PREFIX目录(参见上述的--prefix参数)下安装包了,执行:

$ make install

如果是升级,安装程序不会覆盖你的配置文件和文档。

配置

接着,通过修改PREFIX/conf/下的配置文件,来配置Apache HTTP服务器。

$ vi PREFIX/conf/httpd.conf

docs/manual/有Apache使用手册,http://httpd.apache.org/docs-2.0/有完整的配置指令参考。

测试

现在,可以执行这个命令立即启动你的Apache HTTP服务器:

$ PREFIX/bin/apachectl start

你应该可以用URL http://localhost/来请求你的第一个网页了,这个网页位于DocumentRoot目录下,通常是PREFIX/htdocs/。随后,可以这样停止服务器:

$ PREFIX/bin/apachectl stop

?

热点排行