Yum仓库搭建及httpd源码编译
一 .yum本身也有配置文件,主要指向仓库的位置以及相关的各种配置信息;每个yum命令行可以同时指向多个仓库,仓库间可以优先级等相关的配置,配置文件有两部分组成:
- 主配置文件:
/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源完成
二. httpd源码编译
0 准备工作
查看相同的软件
rpm -qa "httpd*" yum remove httpd
- 安装开发包组(因为源码是通过c语言来编译的,所以在编译时需要gcc等工具来对源码进行操作)
安装apache之前需要安装编译需要的环境"Development tools"这个是编译使用的必须的环境包,使用下面的命令可以安装。
2 .下载httpd的源码并解压缩
tar xvf httpd-2.2.34.tar.gz -C /usr/local/src/httpd22
cd /usr/local/src/httpd22
3 .解压缩后会生成一个相应的软件包目录,进入后可以看很多文件和目录,包括也有可执行的文件,其中configure就是我们需要配置使用的执行文件,里面还有说明文档可以查看软件的介绍和使用帮助说明(README, INSTALL)。
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服务配置文件路径
错误排查:通常编译报错提示的"xxx not found"这些都是我们安装的软件所依赖的包,而你的环境没有安装导致的错误,安装即可。
而安装这些依赖包通常都是缺少的开发包所以我这边安装的都是以 ` ***-devel `的依赖包。我啰嗦这么多是基于性能上考虑,尽量减少不必要的安装包来减少服务器的压力。
安装一下依赖就可解决问题
yum install apr-devel -y
yum install apr-util-devel -y
yum install pcre-devel –y
5 生成Makefile文件进行make install安装
-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 就可以启动服务了
7 调试Apache服务
apachctl start
ss -ntl 80端口打开即成功
http://本机IPt/
vim /app/httpd22/htdocs/index.ht
ml
` ss -tunl | grep 80 ` //查看80端口已经打开这时打开浏览器访问你的IP地址就可以看到80端口的服务已经可以正常访问
配置man地址
vim /etc/man.config(centos 6)
vim /etc/man_db.config(centos 7)
加一行
MANPATH /app/httpd22/man