我们现在以源代码方式安装apache httpd
首先我们下载apache httpd的tar.gz的源码安装包,在http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.25.tar.gz/下载
解压
[root@station129 tmp]# tar xf httpd-2.2.25.tar.bz2
编译安装之前,首先安装3个开发包
[[email protected]]# yum groupinstall "Desktop Platform Development" "ServerPlatform Development" “Development tools”
进入到安装目录下,首先阅读README文件
然后检查环境环境(编译器,头文件,库文件)并且设置编译的配置
首先查看帮助文档,看都支持哪些参数
[root@station129 httpd-2.2.25]# ./configure --help
这里我们看几个比较常用的参数以后供大家编译的时候使用
--bindir=DIRuser executables [EPREFIX/bin] |
二进制文件安装位置 |
--libdir=DIRobject code libraries [EPREFIX/lib |
指定库文件安装位置 |
--includedir=DIRC header files [PREFIX/include] |
头文件安装位置 |
--mandir=DIRman documentation [DATAROOTDIR/man] man |
配置文件所在位置 |
--prefix=PREFIXinstall architecture-independent files in PREFIX |
默认安装包安装的位置 |
--sysconfdir=DIRread-only single-machine data [PREFIX/etc] |
配置文件安装位置 |
我们来正式的安装apache httpd
为了解释清楚库文件的配置,MAN,头文件的配置,我们将不再次指定,待会手动修改
[[email protected]]# ./configure --prefix=/usr/local/apache --enable-so--enable-rewrite
这里我们队httpd 启用了动态链接库和URL重写功能
configure 脚本结合 makefile.in文件生成makefile文件
automake是一种生成makefile.in的工具
autoconf是一种生成configure的文件
我们还可以查看我们刚才日志
[root@station129 httpd-2.2.25]# less config.log 查看配置的日志文件
接下来我们完成编译,make工具找到makefile文件完成编译
我们还可以查看makefile文件
[root@station129 httpd-2.2.25]# make
make 其实就是包含了编译链接等功能
编译好了就可以安装了
[root@station129 httpd-2.2.25]# make install
安装完成
我们来查看安装目录
[root@station129 apache]# ls
binbuildcgi-binconferrorhtdocsiconsincludeliblogsmanmanualmodules
这里面默认安装的着配置文件,头文件,库文件,man 配置手册
如果一个程序找不到库文件,他会报错,我们制定库文件的位置
[root@station129 conf]# cat /etc/ld.so.conf.d/apache.conf
/usr/local/apache/lib
查看 PATH 路径,我们发现不包含我们安装后可执行文件的位置,我们添加进去
[root@station129 apache]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binpro
在/etc/profile.d/中添加一个文件
[root@station129 profile.d]# cat /etc/profile.d/apache.sh
export PATH=/usr/local/apache/bin:$PATH
使环境变量生效:
[root@station129 profile.d]# . /etc/profile.d/apache.sh
编辑man配置的文件,添加一行
MANPATH /usr/local/apache/man
系统找到头文件,创建软连接
[root@station129 include]# ln -s/usr/local/apache/include/ /usr/include/
启动apachectl并且查看
[root@station129 profile.d]# apachectl start
[root@station129 profile.d]# hash
hits command
3 /usr/local/apache/bin/apachectl
我们来看我们的成果
Apachectl工作正常