2018-03-03 源码编译安装

1、centos6中源码编译安装httpd-2.2.34

0 准备工作
查看相同的软件
rpm -qa "httpd*"
yum remove httpd

1 安装开发包组
yum groupinstall "Development tools"

2 下载源码并解包
tar xvf httpd-2.2.34.tar.bz2 -C /usr/local/src
cd /usr/local/src/httpd-2.2.34


3 看说明 
cat README
cat INSTALL 

4 生成Makefile
cd /usr/local/src/httpd-2.2.34
./configure --help  
./configure --prefix=/app/httpd22/ --sysconfdir=/etc/httpd22/ --enable-ssl    ---设置安装路径和配置文件路径并打开ssl功能
echo $?  ---判断上一条命令是否执行成功
yum install openssl-devel   ---需要安装这个软件包
./configure --prefix=/app/httpd22/ --sysconfdir=/etc/httpd22/ --enable-ssl  ---再执行一次。没有错误

5
make - j 4 && make install ---4颗cpu并行。让安装的速度快一点

6 软件配置
准备环境变量
echo 'export PATH=$PATH: /app/httpd22/bin'> /etc/profile.d/httpd22.sh  ---此处需要注意,不能用双引号和不加符号,否则$PATH会展开
. /etc/profile.d/httpd22.sh  ---让文件生效,也可以用source
echo $PATH  
apachectl start  ---这样在哪个目录下都可以运行apachectl,不用每次都得进入当前目录/app/httpd22/bin
ss -ntl 80端口打开即成功
http://本机IP/
vim /app/httpd22/htdocs/index.html
添加man帮助的路径到配置文件
vim /etc/man.config 
加一行
MANPATH /app/httpd22/man

2、centos7中源码编译安装httpd-2.4.27

[root@centos7 test]#rpm -qa "httpd*"  ---查看之前有没有安装过http,避免干扰
httpd-tools-2.4.6-45.el7.centos.x86_64
httpd-2.4.6-45.el7.centos.x86_64
[root@centos7 test]#yum remove httpd-2.4.6-45.el7.centos.x86_64 httpd-tools-2.4.6-45.el7.centos.x86_64
[root@centos7 test]#yum groupinstall " Development Tools" ---安装开发包组
Complete!
[root@centos7 test]#cd /usr/local/src/
[root@centos7 src]#ls
[root@centos7 src]#rz
[root@centos7 src]#ls
httpd-2.4.27.tar.bz2
[root@centos7 src]#tar -xvf httpd-2.4.27.tar.bz2 ---解压文件
[root@centos7 src]#ls
httpd-2.4.27  httpd-2.4.27.tar.bz2
[root@centos7 src]#cd httpd-2.4.27/
[root@centos7 httpd-2.4.27]#ls
ABOUT_APACHE     CMakeLists.txt  INSTALL         NWGNUmakefile
acinclude.m4     config.layout   InstallBin.dsp  os
Apache-apr2.dsw  configure       LAYOUT          README
Apache.dsw       configure.in    libhttpd.dep    README.cmake
apache_probes.d  docs            libhttpd.dsp    README.platforms
ap.d             emacs-style     libhttpd.mak    ROADMAP
build            httpd.dep       LICENSE         server
BuildAll.dsp     httpd.dsp       Makefile.in     srclib
BuildBin.dsp     httpd.mak       Makefile.win    support
buildconf        httpd.spec      modules         test
CHANGES          include         NOTICE          VERSIONING
[root@centos7 httpd-2.4.27]#cat README  ---此文件介绍了apache http服务是干什么的

                          Apache HTTP Server

  What is it?
  -----------
[root@centos7 httpd-2.4.27]#cat INSTALL 

  APACHE INSTALLATION OVERVIEW

  Quick Start - Unix
  ------------------

  For complete installation documentation, see [ht]docs/manual/install.html or
  http://httpd.apache.org/docs/2.4/install.html  ---介绍了安装过程。可以分为四步

     $ ./configure --prefix=PREFIX
     $ make
     $ make install
     $ PREFIX/bin/apachectl start
[root@centos7 httpd-2.4.27]#./configure --help  ---运行configure脚本之前,先看一下帮助。里面告诉了一些用法,怎么制定路径,制定一些特性。哪些需要安装,哪些不需要安装
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local/apache2]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]
[root@centos7 httpd-2.4.27]#./configure --prefix=/app/httpd24 ---运行configure脚本生成makefile文件,这里只规定安装目录就可以,不用指定其他的目录。这样不好管理,特性暂时也不加了,还没有学习到
[root@centos7 httpd-2.4.27]#yum install apr-devel.x86_64
[root@centos7 httpd-2.4.27]#./configure --prefix=/app/httpd24
[root@centos7 httpd-2.4.27]#yum install apr-util-devel.x86_64
[root@centos7 httpd-2.4.27]#./configure --prefix=/app/httpd24
[root@centos7 httpd-2.4.27]#yum install pcre-devel.x86_64
[root@centos7 httpd-2.4.27]#./configure --prefix=/app/httpd24 ---前面一直在排错的过程,运行脚本时发现有好多包都没有装。会提示错误,需要安装。一般都是与开发有关的包就可以
[root@centos7 httpd-2.4.27]#make -j 4 && make install&&echo -e '\a' ---制作和安装可以合成一步进行,最后加上打印声音,可以运行完之后发出声音,注意此步骤是在和configure脚本在同一目录下进行的
[root@centos7 httpd-2.4.27]#cd /app
[root@centos7 app]#ls
a.out  hello  hello.c  Hello.class  Hello.java  httpd24  music  music.sh  test
[root@centos7 app]#cd httpd24/
[root@centos7 httpd24]#ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
[root@centos7 httpd24]#cd bin
[root@centos7 bin]#ls
ab         checkgid   envvars-std   htdbm     httpd       rotatelogs
apachectl  dbmmanage  fcgistarter   htdigest  httxt2dbm
apxs       envvars    htcacheclean  htpasswd  logresolve
[root@centos7 bin]#echo 'export PATH=/app/httpd24/bin:$PATH'>/etc/profile.d/httpd24.sh---设置变量,这样不用每次启动apachectl时进入该目录才能执行
[root@centos7 bin]#source /etc/profile.d/httpd24.sh 
[root@centos7 bin]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/app:/root/bin:/app:/app/test:/app/test/7.31:/root/bin:/app:/app/test:/app/httpd24/bin
[root@centos7 bin]#apachectl start
[root@centos7 bin]#ss -ntl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:111                      *:*                  
LISTEN     0      5      192.168.122.1:53                       *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      128    127.0.0.1:631                      *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128         :::111                     :::*                  
LISTEN     0      128         :::80                      :::*           ---对应的端口已经打开       
LISTEN     0      32          :::21                      :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      128        ::1:631                     :::*                  
LISTEN     0      100        ::1:25                      :::*  
[root@centos7 httpd24]#cd htdocs
[root@centos7 htdocs]#ls
index.html
[root@centos7 htdocs]#vim index.html  ---修改一下网页的页面
  1 

welcome to magedu.com!

[root@centos7 man]#vim /etc/man_db.conf ---在man帮助的配置文件中增加次程序的路径。 # every automatically generated MANPATH includes these fields # #MANDATORY_MANPATH /usr/src/pvm3/man # MANDATORY_MANPATH /usr/man MANDATORY_MANPATH /usr/share/man MANDATORY_MANPATH /usr/local/share/man MANDATORY_MANPATH /app/httpd24/man

总结:需要注意的是:定义变量echo 'export PATH=/app/httpd24/bin:$PATH'>/etc/profile.d/httpd24.sh时一定要将/app/httpd24/bin写到前面,先生效,因为系统里自带一个apachectl,如果$PATH写到前面,会让/usr/sbin/apachectl这个路径先生效,这一样启动的时候就是系统自带的,而不是源码编译安装的。

3、在centos6和centos7上一键源码编译安装apache http服务的脚本

#!/bin/bash
yum -y -q remove httpd*&>/dev/null
echo "httpd* is removed"
yum -y -q groupinstall "Development Tools"&>/dev/null
echo "Development Tools is install"
release=`egrep -o " [0-9]" /etc/centos-release|tr -d " " `
[ "$release" -eq 6 ]&&{ cd httpd-2.2.34;./configure--prefix=/app/httpd22&>/dev/null;make && make install&>/dev/null; } 
[ "$release" -eq 7 ]&&{ yum -y -q install "apr-devel.x86_64" "apr-util-devel.x86_64" "pcre-devel.x86_64"&>/dev/null;cd httpd-2.4.27;./configure --prefix=/app/httpd24&>/dev/null;make&>/dev/null && make install&>/dev/null; }
echo "apachectl is install" 
unset release

你可能感兴趣的:(2018-03-03 源码编译安装)