什么是编译安装——编译:将源代码变为机器可执行的代码文件。安装:将可执行文件安装到操做系统里,才可使用。linux
在官网上下载httpd源码包http://httpd.apache.org,也能够在linux中输入rpm -qi httpd查看到当前下载源码httpd的网址apache
下载到linux的data目录下,而后进行解压:vim
[root@ansibledata]#rz [root@ansibledata]#tar xf httpd-2.4.39
注意:必定要在解压后的httpd目录下安装,下面的编译须要用到httdp目录下的脚本,因此我用cd httpd把目录切换到httpd中去进入cd httpd-2.4.27/bash
查询 cat INSTALL,里边有简单的安装过程,和一些例子app
查询 cat README,(what is it ?)里边有一些Apache 的功能介绍工具
(1)./configure --help 查询这个脚本的用法,spa
--prefix=PREFIX 指定默认安装总目录, 默认为/usr/local/操作系统
--sysconfdir=/PATH 配置文件安装位置,默认就安装到指定安装总目录的下面3d
Optional Features: 须要什么功能blog
--disable-FEATURE 关闭某些功能
--enable-FEATURE 开启某些功能
下面咱们就来执行这个脚本,添加一些简单的设置
手工建立帐号:
[root@ansiblehttpd-2.4.39]#useradd -r -u 80 -d /var/www -s /sbin/nologin httpd
(1)首先安装development-tools包,由于没有C编译工具,缺乏gcc,这时候,咱们须要下一个包组development tools
yum -y groupinstall "Development Tools"
[root@ansiblehttpd-2.4.39]#yum groupinstall "development tools"
(2)首次安装包,会有一些提示错误,第一次安装没有一些准备好的包,能够根据提示错误进行安装:
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(3)咱们只需按照提示的错误,把须要的都安装上去(直到没有提示错误)
先查询缺乏的 yum search apr-devel(通常关于开发的都叫 devel)
再安装 yum -y install apr-devel
[root@ansiblehttpd-2.4.39]#yum install apr-devel
(4)此时缺乏apr-util包,按照提示错误来进行下一步安装:
[root@ansiblehttpd-2.4.39]#yum install apr-util-devel
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(5)根据提示错误继续往下安装,此时缺乏pcre包,安装pcre-devel包
[root@ansiblehttpd-2.4.39]#yum install pcre-devel
继续执行指定路径的包安装
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(6)根据提示的错误,安装openssl-devel包:
[root@ansiblehttpd-2.4.39]#yum install openssl-devel
(7)再执行指定路径的包安装,此时就已经完成指定路径包的安装。
[root@ansiblehttpd-2.4.39]#./configure --prefix=/app/httpd --sysconfdir=/etc/httpd24 --enable-ssl --disable-status
(8)configure脚本彻底执行成功(多了一个Makefile)没有Makefile
(1)进行make编译,make 编译后,多了不少.o .lo 文件 (二进制文件),在此以前的工做,任何用户都能作,而且都在httpd-2.4.27 这个目录下进行
[root@ansiblehttpd-2.4.39]#make
(2)make install 安装到指定位置,只有root 能作,此时httpd的编译完成。
[root@ansiblehttpd]#make install
(3)切换到/app/httpd/bin执行程序目录下,此时去执行服务启动,都必须是./apachectl start,不太方便,咱们能够指定变量路径
[root@ansiblehttpd]#cd /app/httpd/bin [root@ansiblebin]#pwd /app/httpd/bin [root@ansiblebin]#echo 'PATH=/app/httpd/bin:$PATH' > /etc/profile.d/httpd.sh 定义一个/app/httpd/bin的配置文件路径 [root@ansiblebin]#apachectl start 启动当前编译的httpd服务
此时在网上输入本机的IP地址就能够访问信息:
导入帮助手册man
vim /etc/man_db.conf
加入一行 MANDATORY_MANPATH /app/httpd/man