源码编译安装程序包从步骤并不复杂,实际安装过程中最主要的就是准备好编译环境;根据自己的实际需求,选择或设置程序包编译参数;以及程序包安装后的相关配置。


1.  编译环境准备

以CentOS6为例,一般通过yum安装2个包组,编译工具,以及编译程序包依赖的主要的头文件和库文件就都准备好了。

   # yum groupinstall "Development Tools"

   # yum groupinstall "Server Platform Development"

另外,如果在程序包的编译阶段,发现缺少某些依赖开发包,则通过yum安装之,然后继续编译。这个过程可能会反反复复!


2.  程序包编译参数选择或设置

在运行configure脚本前,通常要根据自己的实际需要带上各种参数。这些参数大致归为如下3类。

A) 指定相关的安装路径。举例:

   --prefix=/usr/local/package_name

   --sysconfdir=/etc/package_name

B) 指定启用/禁用的特性。举例:

   --enable-fpm

   --disable-socket

C) 指定所依赖功能、程序或文件。举例:

   --with-function:启用某功能

   --without-function:禁用某功能

不同的程序,其configure脚本支持的具体的参数选项都不完全相同。具体以运行 ./configure --help 帮助信息为准。


3.  程序包安装后的相关配置

程序包安装完成后,为了让系统能找到相应的二进制可执行程序文件、可供其它第三方程序包调用的库文件和头文件和man帮助文件等,要做相应的设置工作。具体可参见下面的安装实例。


httpd源码安装实践

1.  从apache官方网站下载源码文件httpd-2.2.29.tar.bz2,假定存放在/tmp目录下。

2.  # cd /tmp

3.  # tar xf ./httpd-2.2.29.tar.bz2

4.  # cd httpd-2.2.29

5.   编译并安装。假定事先规划将程序包安装在/usr/local/httpd,httpd的配置文件放置在/etc/httpd,并允许动态模块加载功能。

   # ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --enable-so

   # make

   # make install

6.  程序包安装后的相关配置工作。

   A) 在/etc/profile.d目录下创建文件"httpd.sh",文件内容如下:

        # vim /etc/profile.d/apache.sh

        PATH=/usr/local/httpd/bin:$PATH

        export PATH

   B) 在/etc/ld.so.conf.d/目录下创建文件"httpd.conf",文件内容如下:

        /usr/local/httpd/lib

   C) 让系统重新生成库文件路径缓存

         # ldconfig

   D) 创建符号链接,以便系统能找到httpd提供的头文件。

         # ln -s /usr/local/httpd/include  /usr/include/httpd

   E) 导出man文件。修改配置文件/etc/man.config,在相应的位置添加如下行:

         MANPATH /usr/local/httpd/man


至此,apache的WEB服务器程序httpd通过源码编译安装并设置完毕!由于没有服务脚本,可以通过如下方式手动启动:

# apachectl start