源码安装apache实例

   在Redhat/Centos系统中一个软件包的安装一般分为两种方式RPM与compile安装。

RPM安装方式:    

优点 : 提供快速安装,减少编译安装侦错、困扰。

缺点 : 因为相关设定需考量普遍性之问题,常以基本通用设定安装,遇有特殊用途或功能易出现不足之处。

注意事项 : 在安装RPM包时,应特别注意包适用的系统版本。

compile安装方式:

优点:编译安装过程,可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大。

缺点:由于安装包过新或者是其他问题,导致依赖的包没有,或者版本过低。这个时候就要解决包的依赖问题。

注意事项:源码安装的多了,升级系统后,可能会导致以前手动装的东西无法使用。


安装一个源码包,通常需要三个步骤:

1. ./config 在这一步可以定制功能,加上相应的选项即可,具有有什么选项可以通过”./config --help ”命令来查看。在这一步会自动检测你的linux系统与相关的包是否有编译该源码包时需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后才会生成一个Makefile文件。

2. make 使用这个命令会根据Makefile文件中预设的参数进行编译,这一步其实就是gcc在工作了。

3. make install 安装步骤,生成相关的软件存放目录和配置文件的过程。

上面介绍的3步并不是所有的源码包软件都一样的,也可能有安装步骤不是这样的,也就是说源码包的安装并非具有一定的标准安装步骤。这就需要你拿到源码包解压后,然后进入到目录找相关的帮助文档,通常会以INSTALL或者README为文件名。要详细看一下他们的说明文档。

1
2
3
4
5
6
7
8
9
10
11
#本机版本
[root@localhost /]# lsb
lsblk        lsb_release
[root@localhost /]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:    6.5
Codename:   Final
[root@localhost /]# rpm -e httpd
#默认安装,先行卸载

下面将以源代码方式安装apache

1、第一步

从官网http://apache.fayea.com/apache-mirror//httpd/httpd-2.2.26.tar.gz下载到本地。

2、第二步

使用tar命令解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost Download]# tar xf httpd-2.2.26.tar.gz
[root@localhost Download]# ls
httpd-2.2.26  httpd-2.2.26.tar.gz
[root@localhost Download]# cd httpd-2.2.26
[root@localhost httpd-2.2.26]# ls
ABOUT_APACHE   configure.in    LAYOUT         os
acinclude.m4   docs            libhttpd.dep   README
Apache.dsw     emacs-style     libhttpd.dsp   README.platforms
build          httpd.dep       libhttpd.mak   README-win32.txt
BuildAll.dsp   httpd.dsp       LICENSE        ROADMAP
BuildBin.dsp   httpd.mak       Makefile.in    server
buildconf      httpd.spec      Makefile.win   srclib
CHANGES        include         modules        support
config.layout  INSTALL         NOTICE         test
configure      InstallBin.dsp  NWGNUmakefile  VERSIONING

3、运行configure脚本(./configure)

   (./configure是用来检查环境变量及配置编译选项的)

 查看./configure --help获取configure使用说明。下述./configure部分配置选项

    --prefix=PREFIX

           <目录>:指定Apache的安装目录。

    --exec-prefix=EPREFIX

           体系相关文件的*安装目录EPREFIX ,把体系相关的文件安装到不同的位置可以方便地在不同主机之间共享体系相关的文件

    --bindir=DIR

           用户可执行目录DIR 。用于存放对网站管理员很有帮助的htpasswd, dbmmanage之类的支持程序。  

    --includedir=DIR

           Apache的头文件目录DIR

    --libdir=DIR

           对象代码库目录DIR 。

    --mandir=DIR

           手册文档目录DIR 。

    --sbindir=DIR

           系统管理员可执行目录DIR ,用于存放运行HTTP服务器所必须的httpd, apachectl, suexec之类的服务程序。

   --sysconfdir=DIR

只读的单一机器数据目录DIR ,用于存放httpd.conf和mime.types之类的服务器配置文件。

以上参数说明来自http://apache.jz123.cn/programs/configure.html

1
[root@localhost httpd-2.2.26]#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so

编译无错误

然后执行

1
2
3
4
5
6
7
8
9
10
[root@localhost httpd-2.2.26]# make &&make install
Installing configuration files
[PRESERVING EXISTING HTDOCS SUBDIR: /usr/local/apache/htdocs]
[PRESERVING EXISTING ERROR SUBDIR: /usr/local/apache/error]
[PRESERVING EXISTING ICONS SUBDIR: /usr/local/apache/icons]
[PRESERVING EXISTING CGI SUBDIR: /usr/local/apache/cgi-bin]
Installing header files
Installing build system files
Installing man pages and online manual
make[1]: Leaving directory `/root/Download/httpd-2.2.26'

make是用来将源代码编译成二进制文件的,而make install则会将make编译出来的文件安装到指定位置(或默认位置)。

长久:所有用户都有效则

/etc/profile

添加二进制文件引用路径

1
2
3
[root@localhost apache]# vim /etc/profile.d/apache.sh
PATH=$PATH:/usr/local/apache/bin
export PATH

重新读取环境变量,以便可以正常apachectl命令启动服务

1
2
[root@localhost bin]# . /etc/profile.d/apache.sh
#也可以使用source /etc/profile.d/apache.sh

针对某用户有效  ~/.bash_profile

临时:

   export PATH=$PATH:/usr/local/apache/bin


1
2
3
4
5
#启动服务
[root@localhost bin]# apachectl start
[root@localhost apache]# netstat -tnl |grep 80
tcp        0      0 :::80                       :::*                        LISTEN
[root@localhost bin]# elinks http://192.168.1.113

源码安装apache实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#导入头文件
[root@localhost /]# ln -sv /usr/local/apache/include/ /usr/include/httpd/
`/usr/include/httpd/include' -> `/usr/local/apache/include/'
#导入库文件
[root@localhost apache]# ln -sv /usr/local/apache/lib /usr/lib/http
`/usr/lib/http' -> `/usr/local/apache/lib'
[root@localhost ~]# vim /etc/ld.so.conf.d/httpd.conf
[root@localhost ~]# cat /etc/ld.so.conf.d/httpd.conf
/usr/local/apache/lib
[root@localhost /]# ldconfig -v
#重读库文件
/usr/local/apache/lib:
    libexpat.so.0 -> libexpat.so.0.5.0
    libapr-1.so.0 -> libapr-1.so.0.4.8
    libaprutil-1.so.0 -> libaprutil-1.so.0.5.2
1
2
3
#导入man手册
[root@localhost /]# vim /etc/man.config
MANPATH /usr/local/apache/man


=======================================完============================================










本文转自 jinlinger 51CTO博客,原文链接:http://blog.51cto.com/essun/1362946,如需转载请自行联系原作者
上一篇:为什么每个程序员都应该懂点前端知识?


下一篇:Spring Data Redis 让 NoSQL 快如闪电(2)