您的位置:首页 > 理论基础 > 计算机网络

linux安装apache-httpd

2014-07-19 17:14 316 查看
1、httpd源代码下载1.1下载ApacheHTTPServer
httpd-2.4.9.tar.gz
http://httpd.apache.org/download.cgi
下载路径/home/centos/下载/httpd-2.4.9.tar.gz1.2下载APR和APR-UTILapr-util-1.5.3.tar.gzapr-1.5.1.tar.gz
http://apr.apache.org/download.cgi
这里用的window系统下putty的文件上传到linux系统命令。方便远程操作
D:\JavaDecompress\putty>pscp-CC:\Users\win\Downloads\apr-1.5.1.tar.gzcentos@192.168.1.170:/home/centos/

D:\JavaDecompress\putty>pscp-CC:\Users\win\Downloads\apr-util-1.5.3.tar.gzcentos@192.168.1.170:/home/centos
移动到下载目录:测试系统为日文cmd打不出中文。需要putty
cd/home/centos/下载/

mv/home/centos/apr-1.5.1.tar.gz.
mv/home/centos/apr-util-1.5.3.tar.gz.

下载路径/home/centos/下载/apr-1.5.1.tar.gz

下载路径/home/centos/下载/apr-util-1.5.3.tar.gz
1.3下载pcrepcre-8.35.tar.gz
http://www.pcre.org/
下载路径/home/centos/下载/pcre-8.35.tar.gz2、2.1httpd源代码下载、解压、并移到/decompress/apache/
cd/home/centos/下载/

tarzxvfhttpd-2.4.9.tar.gz

root账户su-root

mkdir-p/decompress/apache

chown-Rcentos:centos/decompress/apache

mv/home/centos/下载/httpd-2.4.9//decompress/apache/
2.2aprapr-util解压并移到到/decompress/apr//decompress/apr-util/
tarzxvfapr-1.5.1.tar.gz

tarzxvfapr-util-1.5.3.tar.gz

su-root

mkdir-p/decompress/apr
chown-Rcentos:centos/decompress/apr

mkdir-p/decompress/apr-util
chown-Rcentos:centos/decompress/apr-util

mv/home/centos/下载/apr-1.5.1/decompress/apr/

mv/home/centos/下载/apr-util-1.5.3/decompress/apr-util/
3、快速安装(不推荐)NN为当前的版本号比如2.4.9PREFIX为指定安装路径,如果不指定的话默认为
/usr/local/apache2
Download	$lynxhttp://httpd.apache.org/download.cgiExtract	$gzip-dhttpd-NN.tar.gz
$tarxvfhttpd-NN.tar
$cdhttpd-NN
Configure	$./configure--prefix=PREFIX
Compile	$make
Install	$makeinstall
Customize	$viPREFIX/conf/httpd.conf
Test	$PREFIX/bin/apachectl-kstart
4、编译和安装httpd前的要求:4.1、确保你已经安装APRandAPR-Util在你的linux系统上。如果你不这样做,或不愿意使用系统提供版本,在ApacheAPR上下载最新版本的APR和APR-Util然后解压缩到
./srclib/apr
./srclib/apr-util
目录(确定解压后的文件名不包含版本号也就是不要使用解压后的默认名;例如
APRdistribution解压后必须在./srclib/apr/)然后使用
./configure
--with-included-apr
参数指定apr的src目录。在一些平台上,您可能需要安装相应的-dev包来允许httpd构建APR和APR-Util的副本把apr-1.5.1目录改名并移动到srclib目录下面
mv/decompress/apr/apr-1.5.1//decompress/apache/httpd-2.4.9/srclib/apr/

mv/decompress/apr-util/apr-util-1.5.3//decompress/apache/httpd-2.4.9/srclib/apr-util/
4.2perl兼容的正则表达式库(PCRE)Perl-CompatibleRegularExpressionsLibrary(PCRE)pcre这个库是必需的,但不再与httpd捆绑在一起。从http://www.pcre.org下载源代码,或者安装一个端口或包。如果你构建系统找不到pcre-configPCRE构建脚本安装,使用--with-pcre参数指向它。在一些平台上,您可能需要安装相应的-dev包来允许httpd构建PCRE的副本。
cd/home/centos/下载

pcre解压

tarzxvfpcre-8.35.tar.gz

su-root

mkdir-p/decompress/pcre
chown-Rcentos:centos/decompress/pcre

mv/home/centos/下载/pcre-8.35/decompress/pcre/

cd/decompress/pcre/pcre-8.35

./configure--prefix=/usr/local/pcre--enable-utf

//默认安装在/usr/local的/usr/local/bin',`/usr/local/lib里面为了方面删除卸载还是单独目录存放好
//makeinstall后会在[EPREFIX/bin]之类的下面,支持utf8/16/32

make

makecheck--检查一下非必须

makeinstall

上面的apr不用apachehttpd的./srclib/参数也可以先编译安装只不过用其它的参数配置--with-apr=PATH--with-apr-util=PATHPATH为aprapr-util的安装目录
5、httpd配置文件参数5.1
cd/decompress/apache/httpd-2.4.9/

./configure--help

//查看配置参数具体的可以参考configure文档httpd.apache.org/docs/2.4/programs/configure.html#page-headerconfigure
5.2configure参数配置说明5.2.1Configurationoptions--config自身的配置比如./configure--version版本查看5.2.2Installationdirectories--安装目录
--prefix=PREFIX
默认安装在
/usr/local/apache2
其他的就是文件目录比如
--bindir=DIR
默认路径设置
EPREFIX/bin
里面有
htpasswd
,
dbmmanage
,
etc
--sbindir=DIR
默认路径设置
EPREFIX/sbin
.
httpd
,
apachectl
,
suexec
,
etc.
--sysconfdir=DIR
默认路径设置
PREFIX/conf
httpd.conf,
mime.types
,etc5.2.3Systemtypes--这些选项是用来保存ApacheHTTP服务器在另一个系统上运行。在正常情况下,在构建和运行服务器在同一个系统上,这些选项用不到5.2.4Optionalfeatures--这些选项是用来微调您的HTTP服务器的特性(最主要配的就是这个)5.2.4.1语法:使用以下语法来启用和禁用feature
--disable-FEATURE
禁用FEATURE相当于--enable-FEATURE=no
--enable-FEATURE[=ARG]启用FEATURE
默认值是yes--enable-FEATURE=yes可以简写为--enable-FEATURE[code]--enable-MODULE=shared相应的module模块以DSO构建,默认启用方式为动态加载
--enable-MODULE=static
相应的module模块为静态加载
注意:如果
configure
不会检查不存在的配置项
--enable-foo
可能直接忽略过去
5.2.4.2编译模块选择:启用和禁用功能模块
OptionalFeatures:
...
--disable-example1examplemodule1
--enable-example2examplemodule2
...
//上面的module1默认是启用,module2默认是禁用如果在配置里面配置了上面的2个参数则表示禁用example1启用example2
//所以 ./configure--help|grepdisable可以查看默认启用的 ./configure--help|grepenable查看默认禁用的
5.2.4.3多处理模块:MPMhttp://httpd.apache.org/docs/2.4/mpm.html#defaults
mpm可以build为动态加载或者静态链接linux服务器并使用以下选项启用--with-mpm=MPM选择您的服务器的默认MPM。如果mpm使用动态加载DSO构建模块(见--enable-mpms-shared),则这个指令将选择MPM作为默认加载配置文件。否则,这个指令选择的唯一可用的MPM,将静态链接到服务器。如果省略该选项,默认的MPM适用于您的操作系统将被使用。--enable-mpms-shared=MPM-LIST使mpm作为动态共享模块的列表。其中的一个模块必须使用的动态加载LoadModule指令。MPM-LIST空格分隔的列表MPM的名字被引号括起来。例如:
--enable-mpms-shared='preforkworker'
另外您可以使用特殊的关键字所有,这将选择所有mpm支持动态加载的当前平台和构建DSO模块。例如:
--enable-mpms-shared=all
5.2.4.4第三方模块
--with-module=module-type:module-file[,module-type:module-file]
5.2.5
累积和其他选项

--enable-maintainer-mode
打开调试和编译时警告和加载所有编译模块。
--enable-mods-shared=MODULE-LIST

定义一个模块列表启用并构建动态共享模块。这意味着,这些模块被加载通过使用动态
LoadModule
指令。MODULE-LIST是一个由空格分隔的列表modulenames被引号括起来。
模块名称没有给出前
的mod_
。例如:--enable-mods-shared='headersrewritedav'另外您可以使用特殊的关键字
reallyall
,
all
,
most
,
few
,none
.
。例如,--enable-mods-shared=most将编译和构建他们的大多数模块DSO模块,--enable-mods-shared=few只会编译一组非常基本的模块。默认的设置是
most
LoadModule指令选择的模块将自动生成在主配置文件。默认情况下,所有这些指令将注释掉了,除了要求或显式地选择的模块配置--enable-foo参数。
你可以
httpd.conf通过
更改
LoadModule
指令设置
激活或关闭加载模块。
此外如果要通过LoadModule配置项
加载所有模块,可以通过配置
——enable-load-all-modules
选项激活--enable-mods-static=MODULE-LIST这个选项的行为类似
——enable-mods-shared
,但将给定的模块静态链接。
这意味着,这些模块在
httpd
运行中都会存在。
他们需要通过
LoadModule加载
--enable-modules=MODULE-LIST这个选项
的意思类似于
——enable-mods-shared
,动态加载给定的模块。
特殊的关键字
none
禁用所有模块的加载。--enable-v4-mapped让IPv6的套接字支持IPv4连接。--with-port=PORT监听定义在
httpd
的端口。这个端口号使用
httpd.conf

配置文件的端口设置。默认值是80。
——with-program-name
定义另一个可执行文件的名字。默认值是
httpd

5.2.6可选包5.2.6.1这些选项用于定义可选包。
--with-apr=DIR|FILE
--with-apr-util=DIR|FILE
--with-ssl=DIR
如果想用ssl可以下载http://www.openssl.org/source/wiki文档http://wiki.openssl.org/index.php/Compilation_and_Installation
cd/home/centos/下载/tar-zxvfopenssl-1.0.1h.tar.gzsu-rootmkdir-p/decompress/openssl
chown-Rcentos:centos/decompress/opensslmv/home/centos/下载/openssl-1.0.1h/decompress/openssl/
cd/decompress/openssl/openssl-1.0.1h///默认openssldir目录/usr/local/ssl./config--openssldir=/usr/local/opensslshared-fPIC--shared是动态加载模块。不然有问题
//编译安装
<p>make</p>makeinstall
>>make[4]:***[mod_ssl.la]Error1不加--shared的错误信息
PIC需要用到动态库具体的参照http://www.gossamer-threads.com/lists/apache/users/420868
>TheerroristhattheOpenSSLlibraryyouhavebuilthasnotbeen
>builtwithPIC.RebuilditwithPICsothatitcanbelinkedtoa
>dynamicallyloadedmodule(mod_ssl.so).
>
>ThereasonOpenSSLwasnotbuiltwithPICisthatyoudidnotcompile
>sharedlibrariesforOpenSSL-youonlycreatedstaticlibraries.
>OpenSSLcompileswithPICiffyouenablesharedlibraries.
>
>So,rebuildOpenSSL,thistimepassing'--enable-shared'tothe
>configurescript(orwhatevertheappropriateflagis).
5.3Optionsforsupportprograms6、编译安装httpd6.1
cd/decompress/apache/httpd-2.4.9/./configure--with-included-apr--with-pcre=/usr/local/pcre--with-ssl=/usr/local/ssl--enable-maintainer-mode--with-mpm=worker--enable-mods-shared=mostmakemakecheckmakeinstallcd/usr/local/apache2/binapachectl-kstartapachectl-kstop
7启动的时候报:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,usinglocalhost.localdomainforServerName解决方案参照:
http://stackoverflow.com/questions/9541460/httpd-could-not-reliably-determine-the-servers-fully-qualified-domain-name-us
假设我的服务器是myserver.myhome.com和ip192.168.1.1701Editnetwork//这里hostname是什么名字后面都跟着变$sudonano-w/etc/sysconfig/networkHOSTNAME=myserver.myhome.com
假设我的服务器是myserver.myhome.com和ip192.168.1.1701Editnetwork//这里hostname是什么名字后面都跟着变
$sudonano-w/etc/sysconfig/networkHOSTNAME=myserver.myhome.com2EditHostsFile//dns解析ip和hostname添加myserver.myhome.com信息(对应关系ip主机名.域名主机名(别名))
$sudonano-w/etc/hosts
127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4
::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
192.168.1.170myserver.myhome.commyserver//实测之追加这一条以下2条不加也成功了
127.0.0.1myserver.myhome.commyserver
::1myserver.myhome.commyserver3Edithttpd.conf
$sudonano-w/etc/apache2/httpd.conf
ServerNamemyserver.myhome.com(这里我改成了ServerNamemyserver.myhome.com:80)80应该是默认端口不加也可以不过我加了4Verify
$hostname
(output)myserver.myhome.com
$hostname-f//(可以试下hostname-shostname-ihostname-a)(短名称,ip,别名)
(output)myserver.myhome.com5RestartApache
$sudo/etc/init.d/apache2restartIt
appearedthedifferencewasincludingmyserver.myhome.comtoboththe127.0.0.1aswellasthe
staicip192.168.1.170inthehostsfile.SameinUbuntuServerandCentOSHopethatlaysitoutabit
inonepostforthenextsurfer.ThankyoutoalltheGuru'sinhere.



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: