站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Apache的编译与安装
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
== 编译与安装 == 本文仅阐述[[Apache]]在[[Unix]]和[[类Unix系统]]中的编译和安装。<br> 像其它许多开源项目一样,Apache使用libtool和autoconf建立编译环境。<br> 如果你只进行很小的版本升级(比如2.2.54→2.2.55),请直接跳转到下面的升级部分。<br> '''针对心急者的概述''' 下载 $ lynx http://httpd.apache.org/download.cgi <br> 解压 $ gzip -d httpd-NN.tar.gz<br> $ tar xvf httpd-NN.tar<br> $ cd httpd-NN <br> 配置 $ ./configure --prefix=PREFIX <br> 编译 $ make <br> 安装 $ make install <br> 配置 $ vi PREFIX/conf/httpd.conf <br> 测试 $ PREFIX/bin/apachectl -k start <br> 其中NN必须用当前的副版本号替代;PREFIX是服务器被安装到文件系统中的路径名,如果没有指定PREFIX,默认会装到/usr/local/apache2<br> 下面从编译和安装Apache httpd的要求开始详细阐述编译和安装的每个步骤。<br> ==参考资料== 编译LAMP环境配置过程: 这是shell自动化安装脚本,先准备好软件包在当面目录下执行,mysql采用的是二进制源码包。 #########!/bin/bash ########_APACHEPATH=/usr/local/apache ########_MYSQLPATH=/usr/local ########_PHPPATH=/usr/local/php ########path=`pwd` ########cd $path sleep 3 echo "##########---------- Mysql install-----------#############" echo "Installing Mysql,Please waiting..." cp my.cnf /etc/ tar zxvf mysql-5.1.32-linux-i686-icc-glibc23.tar.gz -C $_MYSQLPATH cd $_MYSQLPATH mv mysql-5.1.32-linux-i686-icc-glibc23 mysql cd mysql groupadd mysql useradd -g mysql mysql chown -R mysql . chgrp -R mysql . scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql:mysql data #$_MYSQLPATH/mysql/bin/mysqld_safe --user=mysql & echo "$_MYSQLPATH/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local echo "Mysql Install Done." cd $path sleep 3 echo "##########---------- Apache install-----------#############" echo "Installing Apache,Please waiting..." tar jxvf httpd-2.2.9.tar.bz2 cd httpd-2.2.9 ./configure --prefix=$_APACHEPATH --enable-so --enable-mods-shared=most make make install echo "$_APACHEPATH/bin/apachectl start" >> /etc/rc.d/rc.local echo "Apache Install Done." cd $path if [ -d /usr/local/apache/ ] then $_APACHEPATH/bin/apxs -c -i -a $path/httpd-2.2.9/modules/mappers/mod_rewrite.c echo "###----Rewrite.so Install Done.----###" else exit fi sleep 3 echo "##########---------- PHP_extension install-----------#############" echo "Installing libxml,Please waiting..." tar zxvf libxml2-2.6.30.tar.gz cd libxml2-2.6.30 ./configure --prefix=/usr/local/libxml make make install echo "libxml Install Done." cd $path echo "Installing libiconv,Please waiting..." tar zxvf libiconv-1.12.tar.gz cd libiconv-1.12 ./configure --prefix=/usr/local/libiconv make make install echo "libiconv Install Done." cd $path echo "Installing zlib,Please waiting..." tar zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure --prefix=/usr/local/zlib make make install echo "zlib Install Done." cd $path echo "Installing Freetype,Please waiting..." tar zxvf freetype-2.2.1.tar.gz cd freetype-2.2.1 ./configure --disable-shared make make install echo "Freetype Install Done." cd $path echo "Install Jpeg,Please waiting..." tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b ./configure --enable-shared --enable-static make mkdir -p /usr/local/man/man1 make install make install-lib echo "Jpeg Install Done." cd $path echo "Install libpng,Please waiting..." tar zxvf libpng-1.2.10.tar.gz cd libpng-1.2.10 ./configure --disable-shared make make install echo "libpng Install Done." cd $path echo "Install Gd,Please waiting..." tar zxvf gd-2.0.35.tar.gz cd gd-2.0.35 ./configure --with-freetype --with-jpeg --with-png make make install echo "Gd Install Done." echo "PHP_extension Install Done." cd $path sleep 3 echo "##########---------- PHP_extension install-----------#############" echo "Installing PHP,Please waiting..." tar jxvf php-5.2.6.tar.bz2 cd php-5.2.6 \cp $_APACHEPATH/build/libtool . ./configure --prefix=$_PHPPATH --with-apxs2=/usr/local/apache/bin/apxs \ --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml \ --with-iconv=/usr/local/libiconv --with-config-file-path=/usr/local/php/etc \ --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir \ --with-zlib=/usr/local/zlib --enable-mbstring --enable-sockets make make install cd ../ cp php.ini $_PHPPATH/etc/ \cp httpd.conf $_APACHEPATH/conf/ $_APACHEPATH/bin/apachectl start echo "PHP Install Done." $_MYSQLPATH/mysql/bin/mysqld_safe --user=mysql & echo "###########----------------Finish-----------------############" == 要求 == '''编译Apache的要求如下:''' 磁盘空间 <br> 必须保证有50MB以上的自由临时磁盘空间。Apache安装完毕后会占据10MB左右的空间,实际的磁盘空间需求会因编译设置和是否安装第三方模块而有所不同。 <br> ANSI-C编译器及编译环境 <br> 必须装有ANSI-C编译器,推荐使用自由软件基金会(FSF)的GCC。如果没有GCC,那么要确保使用的编译器符合ANSI标准,而且PATH中必须包含指向基本编译工具比如make的路径。 <br> 确保准确的时间 <br> 由于HTTP协议的元素都会用到时间,有必要了解一下你的系统所使用的时间同步机制。在基于网络时间协议(NTP)的系统中,一般是用ntpdate或xntpd来同步时间。有关NTP软件的资料请参见NTP主页。 <br> Perl 5 [可选] <br> 有些用Perl写的支持脚本,如apxs或dbmmanage ,需要Perl5解释器(5.003或以上的版本就足够了)。如果系统中存在多个Perl解释器,比如有系统提供的Perl 4,还有你自己安装的Perl 5,推荐你使用 --with-perl 选项来确保configure脚本使用正确的版本。如果configure没有没找到Perl 5也没关系,这并不影响Apache httpd的编译和安装,只是相关的支持脚本不能使用而已。 <br> apr/apr-util >= 1.2 <br> apr和apr-util包含在Apache httpd的发行源代码中,并且在绝大多数情况下使用都不会出现问题。当然,如果apr或apr-util的1.0或1.1版本已经安装在你的系统中了,则必须将你的apr/apr-util升级到1.2版本,或者将httpd单独分开编译。要使用发行源代码中自带的apr/apr-util源代码进行安装,你必须手动完成: <br> # 编译和安装 apr 1.2<br> cd srclib/apr<br> ./configure --prefix=/usr/local/apr-httpd/<br> make<br> make install<br> # 编译和安装 apr-util 1.2<br> cd ../apr-util<br> ./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/<br> make<br> make install<br> # 配置 httpd <br> cd ../../<br> ./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/<br> '''用于apr的configure脚本的选项:''' <br> 可选特性<br> --enable-experimental-libtool <br> 启用试验性质的自定义libtool <br> --disable-libtool-lock <br> 取消锁定(可能导致并行编译崩溃) <br> --enable-debug <br> 启用调试编译,仅供开发人员使用。 <br> --enable-maintainer-mode <br> 打开调试和编译时警告,仅供开发人员使用。 <br> --enable-profile <br> 打开编译profiling(GCC) <br> --enable-pool-debug[=yes|no|verbose|verbose-alloc|lifetime|owner|all] <br> 打开pools调试 <br> --enable-malloc-debug <br> 打开BeOS平台上的malloc_debug <br> --disable-lfs <br> 在32-bit平台上禁用大文件支持(large file support) <br> --enable-nonportable-atomics <br> 若只打算在486以上的CPU上运行Apache ,那么使用该选项可以启用更加高效的基于互斥执行的原子操作。<br> --enable-threads <br> 启用线程支持,在线程型的MPM上必须打开它 <br> --disable-threads <br> 禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。 <br> --disable-dso <br> 禁用DSO支持 <br> --enable-other-child <br> 启用可靠子进程支持 <br> --disable-ipv6 <br> 禁用IPv6支持 <br> 可选的额外程序包<br> --with-gnu-ld <br> 指定C编译器使用 GNU ld <br> --with-pic <br> 只使用 PIC/non-PIC 对象[默认为两者都使用]<br> --with-tags[=TAGS] <br> 包含额外的配置 <br> --with-installbuilddir=DIR <br> 指定APR编译文件的存放位置(默认值为:'${datadir}/build') <br> --without-libtool <br> 禁止使用libtool连接库文件 <br> --with-efence[=DIR] <br> 指定Electric Fence的安装目录 <br> --with-sendfile <br> 强制使用sendfile(译者注:Linux2.4/2.6内核都支持) <br> --with-egd[=DIR] <br> 使用EDG兼容的socket <br> --with-devrandom[=DEV] <br> 指定随机设备[默认为:/dev/random] <br> 用于apr-util的configure脚本的选项:<br> 可选的额外程序包<br> --with-apr=PATH <br> 指定APR的安装目录(--prefix选项值或apr-config的路径) <br> --with-ldap-include=PATH <br> ldap包含文件目录(带结尾斜线) <br> --with-ldap-lib=PATH <br> ldap库文件路径 <br> --with-ldap=library <br> 使用的ldap库 <br> --with-dbm=DBM <br> 选择使用的DBM类型DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43,db44} <br> --with-gdbm=PATH <br> 指定GDBM的位置 <br> --with-ndbm=PATH <br> 指定NDBM的位置 <br> --with-berkeley-db=PATH <br> 指定Berkeley DB的位置 <br> --with-pgsql=PATH <br> 指定PostgreSQL的位置 <br> --with-mysql=PATH <br> 参看INSTALL.MySQL文件的内容 <br> --with-sqlite3=PATH <br> 指定sqlite3的位置 <br> --with-sqlite2=PATH <br> 指定sqlite2的位置 <br> --with-expat=PATH <br> 指定Expat的位置或'builtin' <br> --with-iconv=PATH <br> iconv的安装目录 <br> == 下载 == Apache可以从Apache HTTP服务器下载站点及其镜像站点下载。大多数类UNIX系统的Apache用户最好的选择是下载源代码并编译一个适合自己的版本,这个过程(下面将要讲述)是很简单的,它允许你根据自己的需求进行定制。另一方面编译好的二进制版本通常没有进行及时的更新。如果你下载的是编译好的二进制版本,请按照其中的INSTALL.bindist文件进行安装。<br> 下载完毕后,应该对下载来的tar包作PGP签名校验,以确保其完整而且未被篡改过。(PGP下载页面)<br> == 解压 == 解压Apache httpd的tar包很简单:<br> $ gzip -d httpd-NN.tar.gz<br> $ tar xvf httpd-NN.tar <br> 这样就在当前目录下新建了一个包含发行版源代码的目录,必须cd进入这个目录以继续服务器的编译。<br> == 配置源代码树 == 这一步是根据你的特定平台和个人需求配置源代码树。位于发行源代码根目录的configure脚本会完成这个步骤(对下载Apache CVS版源代码的开发者,需要装有autoconf和libtool ,并需要执行buildconf ,对于官方的发行版则没这个必要)。<br> 要想用所有的默认值配置源代码树只要简单的执行 ./configure 命令就可以了,同时configure还可以接受命令行参数以改变默认值。<br> 最重要的选项是Apache安装目录的前缀:--prefix ,因为Apache需要知道这个目录才能正常运作。更多的微调选项请参考配置选项详解。<br> 这样,你就可以通过在配置选项中指定要启用或禁用哪些模块来定制Apache的特性。Base组的模块默认包含在Apache中。其他组的模块可以通过 --enable-module 指令启用。其中module是模块名去掉"mod_"并将下划线转换成连字符后的字符串。你也可以使用 --enable-module=shared 指令将模块编译为可在运行时加载和卸载的动态共享对象(DSO)。同样的,你也可以使用 --disable-module 指令禁用Base组的模块。注意,使用这些指令的时候configure不会对你拼写错误的模块发出警告说找不到某某模块,而只是简单的忽略这个选项。<br> 另外,有时候还必须提供给configure脚本关于编译器、库、头文件位置的更多信息。这些可以通过环境变量或者命令行选项传递给configure脚本。要了解更多信息,请参考配置源代码树。 <br> 为了让你对能指定什么有一个简单的印象,此例演示编译Apache ,并将其安装在/sw/pkg/apache目录,指定了一个特定的编译器以及编译参数,而且允许今后将两个附加的模块mod_rewrite和mod_speling通过DSO机制在运行时动态加载: <br> $ CC="pgcc" CFLAGS="-O2" \ <br> ./configure --prefix=/sw/pkg/apache \ <br> --enable-rewrite=shared \ <br> --enable-speling=shared <br> configure需要运行几分钟,以测试指定的功能在你的系统中是否有效,并建立稍后编译时所需的许多Makefile文件。<br> == 编译 == 运行以下命令你就可以编译Apache的各个部分了: <br> $ make <br> 请耐心等候,因为对一个基本配置的编译,需要运行几分钟左右,实际需要的时间会因为你的硬件和选择的模块数量有很大不同。<br> == 安装 == 现在可以在PREFIX目录(参见上述的 --prefix 参数)下安装了,执行:<br> $ make install <br> 如果是升级,安装程序不会覆盖你的配置文件和文档。<br> == 配置 == 接着,通过修改PREFIX/conf/目录下的配置文件,来配置Apache HTTP服务器。 <br> $ vi PREFIX/conf/httpd.conf <br> docs/manual/下有Apache使用手册,http://httpd.apache.org/docs/2.2/有最新的文档,你还可以查看完整的指令索引。<br> == 测试 == 现在,可以执行下述命令立即启动你的Apache HTTP服务器:<br> $ PREFIX/bin/apachectl -k start<br> 你应该可以用http://localhost/来请求你的第一个网页了,这个网页位于DocumentRoot目录下,通常是PREFIX/htdocs/ 。随后,可以这样停止服务器:<br> $ PREFIX/bin/apachectl -k stop <br> [root@mail ~]# /usr/sbin/apachectl -t(测试配置文件是否正确) Syntax OK == 升级 == 升级的第一步是阅读源代码目录中的发布公告(release announcement)和CHANGES文件以寻找可能会对你的站点产生影响的变化。如果主板本号的变化(例如1.3→2.0或2.0→2.2)表明编译时和运行时的配置发生了重大变化,需要手动调整,所有模块也需要升级以兼容新版本的模块API 。<br> 小幅度的版本升级(例如:2.2.55→2.2.57)很容易。make install 的过程不会改写任何已经存在的文档、日志、配置文件。此外,开发者也会尽量兼容上一版本的configure选项、运行时配置、模块API 。大多数情况下,你将能够使用与上一版本完全相同的configure命令行和运行时配置,而你原来的所有模块也将正常工作。<br> 如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。这个文件精确地保存了所有对目录树进行配置的configure命令行。你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后,然后运行下面的命令即可完成升级: <br> $ ./config.nice <br> $ make <br> $ make install <br> $ PREFIX/bin/apachectl -k graceful-stop <br> $ PREFIX/bin/apachectl -k start <br> '''[[在Microsoft Windows中使用Apache]]''' <br> '''[[在Unix和类Unix系统中的编译和安装Apache]]''' [[category:Apache]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)