`
lirig
  • 浏览: 234941 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Apache 2.0 unix 下面的安装

    博客分类:
  • Arch
阅读更多

 

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来建立安装环境。

概要

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的要求开始。

top

要求

编译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)的系统中,一般是用ntpdatexntpd来同步时间。有关NTP软件和公共时间服务器的资料请参见Usenet新闻组comp.protocols.time.ntpNTP homepage
Perl 5 [可选]
有些用Perl写的支持脚本,如apxsdbmmanage,会需要Perl 5解释器(5.003或以上版本就足够了),如果`configure'没找到这样的解释器也没关系,并不影响Apache 2.0的编译和安装,只是这些支持脚本不能用而已。如果系统中存在多个Perl 解释器,比如有厂商提供的Perl 4,还有你自己找来的Perl 5,推荐用--with-perl选项来确保脚本./configure使用正确的版本。
top

下载

Apache可以从Apache Software Foundation download site及其镜像站点下载。

版本号缀有alpha的是预测试版本,其运行可能正常也可能不正常;缀有beta的是仍需要测试和纠错的较可靠的版本。要下载最好的Apache HTTP Server的发行版,就应该选择最新的,而且文件名中既没有alpha也没有beta的版本。

下载完毕后,尤其是从镜像站点下载的,应该对下载来的tar包作PGP签名校验,以确保其完整而且未被篡改过。校验有两个步骤,第一步,必须从Apache distribution site获得一个密钥(KEYS)(为确保此密钥文件本身未被篡改,使用Apache早先发行版中的或者导入来自公共密钥服务器的密钥也许是个好办法),用以下命令导入到你的个人密钥环中(可能会因你的PGP版本有所不同):

$ pgp < KEYS

$ gpg --import KEYS

第二步,从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版本的开发者,需要装有autoconflibtool,并执行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=...
编译器和连接器共享的库路径

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

top

编译

执行这个命令就可以编译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

 

分享到:
评论

相关推荐

    Apache2.0中文手册(chm格式)

    Apache 2.0在诸如BeOS,OS/2和Windows等非Unix平台上有了更好的速度和稳定性。 随着平台特定的multi-processing modules(MPMs)和 Apache Portable Runtime (APR)的引入,Apache在这些平台上的指令由它们本地的API...

    apache2 chm 手册

    Apache 2.0在诸如BeOS,OS/2和Windows等非Unix平台上有了更好的速度和稳定性。 随着平台特定的multi-processing modules(MPMs)和 Apache Portable Runtime (APR)的引入,Apache在这些平台上的指令由它们本地的API...

    Apache2.2中文手册.zip

    Apache 2.0 新特性概述 Unix线程 新的编译系统 多协议支持 对非Unix平台更好的支持 新的 Apache API IPv6 支持 过滤器 多语种错误应答 简化了配置 本地 Windows NT Unicode 支持 正则表达式库更新

    apache模块开发指南(中文版)

    Apache的开发人员认识到Apache 最初的架构具有局限性,比较粗糙,于是在2000年开始建立新的代码仓库(codebase)主分支,并在此代码仓库的基础上于2002年4月创建了Apache2.0的第一个发布版本。Apache 2包括以下优良...

    apache-log4j-2.0-beta3-src

    apache-log4j-2.0-beta3-src Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也...

    NTLM auth module for Apache/Unix-开源

    NTLM是Microsoft IIS和Internet Explorer使用的身份验证方法。 该模块正在为Apache 1.3.9和Apache 2.0实现NTLM。

    Apache 支持CGI程序和SSI程序的设置方法

    目前ApacheSoftware Foundation 正致力于发展现在已进入alpha测试阶段的Apache2.0。在这里,网页教学网和大家探讨如何修改服务器选项让服务器能提供简单的动态网页内容,也就是支持CGI程序及 Server-Side Include...

    apache server 实用全书.ISO

    Comanche 2.0 for UNIX and Windows systems MOMspider Perl scripts Webalizer in Linux and Windows binary format Wusage in Linux GLIBC and Windows binary format wwwstat Perl scripts Each third-...

    IzPack--强大的Java安装程序制作软件

    izpack是基于Apache Software License 2.0许可的开源项目;izpack是纯Java,对部分特性有针对不同平台版本的Library。例如:快捷键的创建。izpack是一个用于解决安装程序制作的Builder工具;通过izpack制作的安装...

    爱站CMS V2.0

    爱站CMS:代码开源,可方便进行二次开发,功能模块可以自由安装与删除,个人用户免费使用,系统...您也可以直接下载爱站CMS V2.0安装包进行安装,下载地址: http://www.izhancms.com/category/Category/index/cid/1

    歪酷CMS(WaiKuCMS) 2.0 20130612.zip

    歪酷CMS(WaiKuCMS) 2.0 20130612 更新日志: 1.标签驱动解析机制 2.模型扩展机制 3.主题扩展机制完善 4.wap网站主题扩展 5.系统插件扩展机制 [基本功能] [√]文章展示 [√]投票展示 [√]心情展示 [√]留言...

    apache-commons源码及jar文件

    Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 ...

    歪酷CMS v2.0 UTF8 RC 20130414.zip

    歪酷CMS(WaiKuCMS) v2.0 RC 20130414 更新内容: 1.完善客户端对接歪酷云平台基础架构(底层架构) 2.专题支持在线导入(新功能) 3.会员注册修正审核已注册用户判断(修复) 4.会员登录修正登录信息更新(修复) ...

    Apache 网站速度更快

    Apache2.0在性能上的改善最吸引人.在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能.相比于Apache

    WampServer2.0

    安装运行环境大致分为两类,一种是IIS+php+mysql,另外一种是apache+php+mysql。前一种是基于windows平台,后一种是跨平台,即windows,Linux,unix以及OS X等平台都适用。

    Apache Tomcat 7

    Install and set up Tomcat 7 on Windows and Unix platforms Manage and deploy application deployed on Tomcat 7 using Manager Application Secure Tomcat 7 server using security realms or HTTPS protocol...

    tokio-uds:用于tokio的Unix域套接字

    执照该项目获得以下任一许可Apache许可证2.0版( 或 ) MIT许可证( 或 ) 由您选择。贡献除非您明确声明,否则您有意按照Apache-2.0许可的定义,故意提交供您加入tokio-uds的任何贡献,均应按上述双重许可,没有...

    YiCms糗事百科php版v2.0免费版

    YiCms糗事百科使用说明 一、平台需求 1.Windows 平台: IIS/Apache/ PHP5.1/PHP5.2 /PHP5.3 MySQL4/5 2.Linux/Unix 平台 Apache PHP4/PHP5 MySQL3/4/5 (PHP必须在非安全模式下运行) 建议使用平台:Linux Apache...

Global site tag (gtag.js) - Google Analytics