编译安装apache
以下通过实例解释apache整个编译安装过程,与此同时先介绍RPM&YUM。
一 RPM 是应用程序包管理器,在过去RPM全称为:RedHat Package Manager 。现在已经成为包管理 器标准的RPM的解释为(RPM is Package Manager)
1 RPM基本功能: ①打包
②安装
③查询
④升级
⑤卸载
⑥校验
⑦数据库管理
2 RPM包的基本格式 Name-version-release.arch.rpm
包名 版本 修订号 硬件基于的PUC类型
version:major.minor.release
主版本 次版本 修改号
3 RPM 常用命令
安装 rmp -ivh rpm_package
忽略依赖关系安装
rpm -ivh rmp_package --nodeps
卸载 rmp -e rpm_package
-e = --erase
忽略依赖关系安装
rpm -e rpm_package --nodeps
查询 rpm -q
rpm -qa 查询所有已经安装的包
rpm -qf /path/to/somefile查询某个文件是哪个包安装生成的
rpm -qd package_name 查询包安装生成后生成的帮助文档
rpm -qc package_name 查询包安装完成后生成的配置文件
升级 rpm {-Uvh|-Fvh} /path/to/somefile
--force 强行升级
--nodeps 忽略依赖关系
二 yum ,不得不提的强大工具
yum 属于程序包管理器的前段工具,它能更好的处理程序包之间的依赖关系 一起聊聊它的工作机制
yum是标准的C/S架构,即 客户端/服务器架构
1 yum文件服务器
通过yum所支持的文件共享机制将 各rpm包通过文件服务共享出来,供yum客户端下载使用。
服务器里有 yum仓库 -很重要的概念哦,以后要经常配置以.repo结尾的仓库文件的
仓库中存放着①各种rmp包 ②rmp包的依赖关系、元数据文件。。。
如上图所示 /etc/yum.repos.d/ 目录下存放着所有仓库文件*.repo
1.1 实现yum文件服务器的服务:ftp、http、nfs、file
2 yum客户端
1、配置文件:指定各个可用的yum仓库
2、缓存源数据:yum会到各个可用的yum仓库中获取源数据,并缓存在本地
3、分析源数据:根据具体操作请求完成源数据分析,可能包括检查依赖性、文件列表信息
4、执行具体操作
三 编译安装apache
上面啰嗦的时间不少,也是因为以上内容中的一些命令,机制等信息能让我们更好的理解更顺利的去编译安装
1 测试本地开发环境是否可用
说明没有gcc开发环境
2 安装开发环境程序包组
操作系统为 CentOS6.4 x86_64版本的包组
yum groupinstall "Server Platform Development"
yum groupinstall "Development tools"
程序包组安装命令
yum groupinstall "PackageGroup_Name"
卸载命令
yum groupremove "PackageGroup_Name"
2.1 为了更方便的下载安装开发环境程序包组,所以我们搭建一个本地yum源仓库以供下载
(自己首先创建一个yum仓库,以方便下载安装包组 "Server Platform Development" "Development tools")
创建yum仓库repo1.repo
#cd /etc/yum.repos.d/
#vim repo1.repo
配置yum仓库repo1.repo
#mount /dev/cdrom /mnt ----将本地镜像挂载到/mnt中
注意:baseurl=file:///mnt 这是创建本地yum源的方式;
您也可以使用 baseurl=http://server/path/to/repo
baseurl=nfs://server/path/to/repo
baseurl=ftp://server/path/to/repo
2.2 本地yum源搭建成功后,则可以更快速的下载安装开发环境
#yum groupinstall "Development Tools"
#yum groupinstall "Server Platform Development"
#gcc -version 查看开发环境状态已OK
3 编译安装apache
3.1 确保系统当前无 httpd程序--否则会出现冲突导致编译安装失败--->注意
#yum list installed 查看当前已安装的所有程序包
#rm -rf /etc/httpd 删除系统当前的httpd目录及内部文件
3.2 获得httpd源码包(获得方式有①本地ftp服务器获得②官方下载③知名站点)
以官方下载为例
在http://httpd.apache.org/download.cgi 下载
3.3复制下载链接,使用wget下载到本地
3.4 解压源程序包
#tar xf httped-2.2.26.tar.bz2
3.5 进入源程序包目录
#cd httped-2.2.26 一般源程序包的目录为Name-Version
3.6 执行configure脚本,手动配置相应的选项参数
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd
./configure --help获取configure使用说明。下述./configure部分配置选项
--prefix=PREFIX
<目录>:指定Apache的安装目录。
--exec-prefix=EPREFIX
体系相关文件的*安装目录EPREFIX ,把体系相关的文件安装到不同的位置可以方便地在不同主机之 间共享体系相关的文件
--bindir=DIR
用户可执行目录DIR 。用于存放对网站管理员很有帮助的htpasswd, dbmmanage之类的支持程序。
--includedir=DIR
Apache的头文件目录DIR
--libdir=DIR
对象代码库目录DIR 。
--mandir=DIR
手册文档目录DIR 。
--sbindir=DIR
系统管理员可执行目录DIR ,用于存放运行HTTP服务器所必须的httpd, apachectl, suexec之类的服务 程序。
--sysconfdir=DIR
只读的单一机器数据目录DIR ,用于存放httpd.conf和mime.types之类的服务器配置文件。
3.7 编译(将源代码编译成二进制文件)
#make
3.8 安装(将二进制文件安装到默认指定的路径)
#make install
3.7和3.8可以同时进行 #make && make install
3.9 启动二进制程序
#/usr/local/apache/bin/apachect1 start
3.10 查看httpd服务是否已启动
#netstat -ntl | grep 80
3.11 打开web输入httpd服务器访问地址 192.16.1.107
编译安装成功~!
4 安装成功的后续工作(全局设置httpd服务的二进制文件、库文件、include文件、man手册)
4.1 设置二进制文件的全局引用路径
添加临时环境变量将二进制程序关联到系统默认路径,如何这样其他用户无需再进入绝对路 径去启动服务
临时有效,下次登陆则不再生效
#export $PATH:/usr/local/apache/bin
长久有效的话则需要配置文件
#vim /etc/profile.d/apache.sh #PATH=$PATH:/usr/local/apache/bin #export PATH
重新读取环境变量立刻生效
#source /etc/profile.d/apache.sh
4.2 全局设置,关联头文件到系统默认路径
#ln -sv /usr/local/apache/include/ /usr/include/httpd/
4.3 全局设置,关联库文件到系统默认路径
#ln -sv /usr/local/apache/lib/ /usr/lib/http
重读数据库文件,生成新的缓存
lddconfig -v
4.4 全局设置,配置服务命令的man手册路径,全局长久生效
#vim /etc/man.config
添加MANPATH /usr/local/apache/man 添加到配置文件中如图:
配置完4步骤的所有,httpd服务可以直接调用,并且其他用户同样可以直接使用,而且长久生效
PS 此次编译安装的过程个人认为yum仓库的创建与源程序包的取得是重点
本人经验不足,望过路大神耐心指点。
转载于:https://blog.51cto.com/jungege/1363540