Yum仓库搭建及httpd源码编译

一 .yum本身也有配置文件,主要指向仓库的位置以及相关的各种配置信息;每个yum命令行可以同时指向多个仓库,仓库间可以优先级等相关的配置,配置文件有两部分组成:

  1. 主配置文件:

     /etc/yum.conf 为各仓库指向提供公共配置

     /etc/yum.repo.d/*.repo 为仓库的指向提供配置

      yum的repo配置文件中可用变量

      $releasever 当前OS发行版的主版本号

      $arch 平台 x86_64 、i386 、i486等

      $basearch、仓库配置文件格式

   2.[base] 仓库名称

     name=CentOS-$releasever - Base 定义一个应用名称(可省)

     baseurl=file:///misc/cd yum源的寻找路径(将本地光盘作为yum源)

     gpgcheck=1 需要检查key =0 不需要检查key

     gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 key的寻找路径

     enabled=1 仓库启用 =0 仓库禁用

     到此本地yum源完成

 

centos yum 仓库_配置文件

二.  httpd源码编译

 

centos yum 仓库_80端口_02

0 准备工作

查看相同的软件

rpm -qa "httpd*" yum remove httpd

centos yum 仓库_vim_03

  1. 安装开发包组(因为源码是通过c语言来编译的,所以在编译时需要gcc等工具来对源码进行操作)

安装apache之前需要安装编译需要的环境"Development tools"这个是编译使用的必须的环境包,使用下面的命令可以安装。

centos yum 仓库_配置文件_04

 

 

centos yum 仓库_配置文件_05

       2 .下载httpd的源码并解压缩

tar xvf httpd-2.2.34.tar.gz -C /usr/local/src/httpd22
cd /usr/local/src/httpd22

centos yum 仓库_centos yum 仓库_06

3 .解压缩后会生成一个相应的软件包目录,进入后可以看很多文件和目录,包括也有可执行的文件,其中configure就是我们需要配置使用的执行文件,里面还有说明文档可以查看软件的介绍和使用帮助说明(README, INSTALL)。

centos yum 仓库_80端口_07

 4使用configure进行配置需要执行"./configure",可以使用"–help"命令查看后面可以使用的选项;不加任何选项也可,"–prefix"可以指定将软件安装到 哪个目录下,如果不加此选项,默认会安装到"/usr/local/src/httpd22"下面,其他选项可以现在使用,也可以后期要使用时再定制,这也就是使用源码安装 的好处。如:模块等等。

开始编译源码包(切记当前目录是在/usr/local/src/httpd22/)

./configure –prefix=/app/httpd22 –sysconfdir=/etc/httpd22/ && make && make install
--prefix=/app/httpd22 #httpd服务安装路径 --sysconfdir=/etc/httpd22#httpd服务配置文件路径

centos yum 仓库_vim_08

错误排查:通常编译报错提示的"xxx not found"这些都是我们安装的软件所依赖的包,而你的环境没有安装导致的错误,安装即可。

而安装这些依赖包通常都是缺少的开发包所以我这边安装的都是以 ` ***-devel `的依赖包。我啰嗦这么多是基于性能上考虑,尽量减少不必要的安装包来减少服务器的压力。

centos yum 仓库_配置文件_09

安装一下依赖就可解决问题

yum install apr-devel -y
yum install apr-util-devel -y
yum install pcre-devel –y

centos yum 仓库_centos yum 仓库_10

5 生成Makefile文件进行make install安装

centos yum 仓库_vim_11

-j参数是加速编译 2是调用CPU的两个核心来编译 make install就是把编译好的文件进行安装"

注释:-j参数后面跟的数字是你的CPU可用的核心数不能超过实际的核心数量。

make编译时系统默认是值是 make -j 1(所以你CPU是单核的话就不用加 -j参数了,直接make编译就可以了,只不过花费的时候可能会长一些。)

6   软件配置

    准备环境变量

       

echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd22.sh
           . /etc/profile.d/httpd22.sh
           echo $PATH

#这里是将/etc/init.d/httpd直接放在了PATH变量中,然后启用变量生效,这样我们直接可以运行httpd start 就可以启动服务了

centos yum 仓库_配置文件_12

7     调试Apache服务

apachctl start
        ss -ntl 80端口打开即成功
        http://本机IPt/
         vim /app/httpd22/htdocs/index.ht

ml

          ` ss -tunl | grep 80 ` //查看80端口已经打开这时打开浏览器访问你的IP地址就可以看到80端口的服务已经可以正常访问

centos yum 仓库_配置文件_13


     配置man地址

vim /etc/man.config(centos 6)
              vim /etc/man_db.config(centos 7)

     加一行

   

MANPATH /app/httpd22/man