linux安装apache-httpd

1、

httpd源代码下载

1.1

下载Apache HTTP Server httpd-2.4.9.tar.gz 

http://httpd.apache.org/download.cgi

下载路径   /home/centos/下载/httpd-2.4.9.tar.gz

1.2

下载APR和APR-UTIL  apr-util-1.5.3.tar.gz   apr-1.5.1.tar.gz

http://apr.apache.org/download.cgi

这里用的window系统下putty的文件上传到linux系统命令。方便远程操作

D:\JavaDecompress\putty>pscp -C C:\Users\win\Downloads\apr-1.5.1.tar.gz centos@192.168.1.170:/home/centos/

D:\JavaDecompress\putty>pscp -C C:\Users\win\Downloads\apr-util-1.5.3.tar.gz centos@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

下载pcre        pcre-8.35.tar.gz   

http://www.pcre.org/

下载路径 /home/centos/下载/pcre-8.35.tar.gz  


2、

2.1

httpd源代码下载 、解压、并移到/decompress/apache/

cd /home/centos/下载/

tar zxvf httpd-2.4.9.tar.gz

root 账户su - root

mkdir -p /decompress/apache

chown -R centos:centos /decompress/apache

mv /home/centos/下载/httpd-2.4.9/ /decompress/apache/       
2.2

apr apr-util解压并移到到/decompress/apr/ /decompress/apr-util/

tar zxvf apr-1.5.1.tar.gz

tar zxvf apr-util-1.5.3.tar.gz

su - root

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

mkdir -p /decompress/apr-util
chown -R centos: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.9

PREFIX为指定安装路径,如果不指定的话默认为/usr/local/apache2

Download 	$ lynx http://httpd.apache.org/download.cgi
Extract 	$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
$ cd httpd-NN
Configure 	$ ./configure --prefix=PREFIX
Compile 	$ make
Install 	$ make install
Customize 	$ vi PREFIX/conf/httpd.conf
Test 	$ PREFIX/bin/apachectl -k start
4、

编译和安装httpd前的要求:

4.1、确保你已经安装 APR and APR-Util在你的linux系统上。如果你不这样做,或不愿意使用系统提供版本,在Apache APR上下载最新版本的APR和APR-Util 然后解压缩到./srclib/apr./srclib/apr-util目录(确定解压后的文件名不包含版本号也就是不要使用解压后的默认名;例如 APR distribution 解压后必须在 ./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-Compatible Regular Expressions Library (PCRE)

pcre这个库是必需的,但不再与httpd捆绑在一起。从http://www.pcre.org下载源代码,或者安装一个端口或包。如果你构建系统找不到pcre-config PCRE构建脚本安装,使用--with-pcre参数指向它。在一些平台上,您可能需要安装 相应的 - dev 包来允许httpd构建 PCRE的副本。

 cd /home/centos/下载

pcre解压

tar zxvf pcre-8.35.tar.gz

su - root

mkdir -p /decompress/pcre
chown -R centos: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 里面为了方面删除卸载还是单独目录存放好
// make install后会在[EPREFIX/bin]之类的下面,支持utf8/16/32

make

make check --检查一下非必须

make install

上面的apr不用apachehttpd的 ./srclib/参数也可以先 编译安装只不过用其它的参数配置 --with-apr=PATH --with-apr-util=PATH PATH为 apr apr-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.2

configure 参数配置说明

5.2.1  

Configuration options  --config 自身的配置 比如 ./configure --version 版本查看
5.2.2   

Installation directories --安装目录--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, etc

5.2.3  

System types --这些选项是用来保存Apache HTTP服务器在另一个系统上运行。在正常情况下,在构建和运行服务器在同一个系统上,这些选项用不到
5.2.4   

Optional features --这些选项是用来微调您的HTTP服务器的特性(最主要配的就是这个)

5.2.4.1

语法:使用以下语法来启用和禁用feature

--disable-FEATURE   禁用FEATURE   相当于--enable- FEATURE=no
--enable-FEATURE[=ARG]  启用FEATURE 默认值是yes --enable- FEATURE=yes 可以简写为--enable- FEATURE
--enable-MODULE=shared
相应的module模块以DSO构建 ,默认启用方式为 动态加载 
--enable-MODULE=static
相应的module模块为静态加载
注意 :如果 configure 不会检查不存在的配置项 --enable-foo 可能直接忽略过去

5.2.4.2

编译模块选择:启用和禁用功能模块

Optional Features:
  ...
  --disable-example1     example module 1
  --enable-example2      example module 2
  ...
//上面的module1 默认是启用,module2 默认是禁用 如果在配置里面 配置了上面的2个参数则表示 禁用example1 启用example2
//所以 ./configure --help | grep disable 可以查看默认启用的  ./configure --help | grep enable 查看默认禁用的

5.2.4.3

多处理模块:MPM  http://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='prefork worker'
另外您可以使用特殊的关键字 所有 , 这将选择所有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='headers rewrite dav'

另外您可以使用特殊的关键字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 -zxvf openssl-1.0.1h.tar.gz

su - root

mkdir -p /decompress/openssl
chown -R centos:centos /decompress/openssl

mv /home/centos/下载/openssl-1.0.1h /decompress/openssl/
cd /decompress/openssl/openssl-1.0.1h/

//默认openssldir目录/usr/local/ssl

./config --openssldir=/usr/local/openssl shared -fPIC  --shared是动态加载模块。不然有问题 
//编译安装
<p>make</p>make install

>> make[4]: *** [mod_ssl.la] Error 1  不加--shared的错误信息

PIC需要用到动态库具体的参照http://www.gossamer-threads.com/lists/apache/users/420868

> The error is that the OpenSSL library you have built has not been
> built with PIC. Rebuild it with PIC so that it can be linked to a
> dynamically loaded module (mod_ssl.so).
>
> The reason OpenSSL was not built with PIC is that you did not compile
> shared libraries for OpenSSL - you only created static libraries.
> OpenSSL compiles with PIC iff you enable shared libraries.
>
> So, rebuild OpenSSL, this time passing '--enable-shared' to the
> configure script (or whatever the appropriate flag is). 

5.3

  Options for support programs

6、

编译安装httpd

6.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=most

make

make check

make install

cd /usr/local/apache2/bin

apachectl -k start

apachectl -k stop

7

启动的时候报:httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName

解决方案参照:

http://stackoverflow.com/questions/9541460/httpd-could-not-reliably-determine-the-servers-fully-qualified-domain-name-us

假设我的服务器是myserver.myhome.com和ip192.168.1.170
1 Edit network //这里hostname 是什么名字后面都跟着变
$ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com

假设我的服务器是myserver.myhome.com和ip192.168.1.170

1 Edit network //这里hostname 是什么名字后面都跟着变
$ sudo nano -w /etc/sysconfig/network HOSTNAME=myserver.myhome.com

2 Edit Hosts File // dns解析ip和hostname 添加myserver.myhome.com信息 (对应关系 ip 主机名.域名 主机名(别名))
$ sudo nano -w /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.170 myserver.myhome.com myserver //实测之追加这一条以下2条不加也成功了
127.0.0.1 myserver.myhome.com myserver
::1 myserver.myhome.com myserver

3 Edit httpd.conf
$ sudo nano -w /etc/apache2/httpd.conf
ServerName myserver.myhome.com (这里我改成了ServerName myserver.myhome.com:80)80应该是默认端口不加也可以不过我加了

4 Verify 
$ hostname 
(output) myserver.myhome.com 
$ hostname -f //(可以试下hostname -s hostname -i hostname -a)(短名称,ip,别名) 
(output) myserver.myhome.com 

5 Restart Apache 
$ sudo /etc/init.d/apache2 restartIt 
appeared the difference was including myserver.myhome.com to both the 127.0.0.1 as well as the 
staic ip 192.168.1.170 in the hosts file. Same in Ubuntu Server and CentOSHope that lays it out a bit 
in one post for the next surfer. Thank you to all the Guru's in here. 

 
 
 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值