Yum编译安装web源程序并启动服务器软件
一、编译安装
1.1 Rpm与yum的小小区别
在没有配置yum 源的时候,他俩没太大的差别,除了选项的不同。而在给yum配置了yum源之后,他们就有了很大的不同。首先yum仓库就好比一个大卖场,而且是一个专为yum提供的一个免费的卖场,里面的rpm包随便 yum使用,而且它还能解决包与包的依赖关系,将有所依赖的包全部安装,rpm则不能。
1.2 搭建yum仓库。
创建yum仓库有另种方法,一种是修改/etc/yum.conf文件,另一种是在/etc/yum.repos.d/下创建以.repo结尾的文件。
修改/etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
[centos]
name=centos 1.0
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/
[main]乃是全局性配置,默认一般不必改动。
[centos]就是repolist--yum仓库资源了。可以列出任意多个,×××。
也可以不必修改yum.conf,另外编译一个yum仓库
必须在/etc/yum.repos.d/下创建以.repo结尾的文件才行,这里以yum.repo文件为例
[dragon]
name=super star 0.1
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/
gpgcheck=0
enabled=1
同样可以实现yum仓库的创建。
Rpm包安装一般都不需要编译的,而有些却需要编译,如源代码包。下面通过实例来解决源代码包的安装过程。
Apache全球第一的web服务器软件网站,上面提供了大量的源程序包。
到Apache网站下载源程序包
www.apache.org---->
大量的程序包尽情下载。
我们下载一个httpd-2.2.25.tar.bz2
然后解压,cd到解压后的文件中。
.c文件都是源程序文件,要使服务器软件能用,用gcc编译.c文件。
但由于.c文件过多,而编译有必须安装特定的顺序进行,所以gcc显然实现不了。
Make工具,管理一组的程序,实现将应用程序的源程序的多个源程序文件按照工程的方法来管理,能够根据一个简单的指令文件自动的实现按次序编译源程序。它大大简化降低了gcc的工作,但它仍然延续了gcc了功能,需要一个配置文件才能进行编译,这个文件是makefile。Makefile文件中指出了我们使用gcc先编译哪个文件,先编译其中的哪个片段,这样的步骤来编译。它是由脚本文件自动生成的,脚本文件是configure.它又是由软件包的作者制作的autoconf工具自动生成的,automake又能自动生成makefile.in.
所以简单的步骤就是,configure脚本结合automake生成的makefile.in生了makefile文件,这时就可以用make命令编译了,编译完了使用make install安装就行了。
要想编译就得安装三个软件包,gcc是基于这三个软件包的,这三个软件包安装了才有gcc工具。
Desktop Platform Development
Server Platform Development
Development tools
#yum groupinstall Desktop Platform Development
#yum groupinstall Desktop Server Platform Development
#yum groupinstall Desktop Development tools
三个包租安装完了就可以编译了。
注意:有时候可能因为某种原因,三个包组装完后,检测编译环境仍会提示没有C编译器
configure: error: no acceptable C compiler found in $PATH
这时就需要我们多加一步,手动安装gcc了。
#yum install gcc
1.3 源代码编译安装三部曲:
执行源代码目录中的configure脚本,即:
[root@station125 httpd-2.2.25]#./configure --prefix=/usr/local/apache --enable-so --enable-rewrote
检测编译环境,让用户定义编译配置
--prefix=/urs/local/apache 当卸载的软件的时候,这个目录删除,一切搞定。
--sysconfdir=指定配置文件的存放位置
[root@station125 httpd-2.2.25]#make---------------------编译
[root@station125 httpd-2.2.25]#make install-------------安装
原理再重复一遍
./configure+makefile.in(automake自动生成的)------>makefile(可以先看一下源代码目录下本来没有makefile文件的)-------->make利用gcc的功能编译二进制代码-------->make install编译完成进行安装。
执行第二步
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrote
后,我们会发现,源代码目录下生成了makefile文件。
1.4 启动服务器
安装完成后,来到指定的安装目录/usr/local/apache下看看里头都有啥。
[root@station125 httpd-2.2.25]# cd /usr/local/apache
[root@station125 apache]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
现在可以启动我们的web服务器了
[root@station125 apache]#/usr/local/apache/bin/apachectl start
然后查看80端口是否启用
[root@station125 apache]#netstat -tnlp
或者使用
[root@station125 apache]#lsof -i:80
二、服务器配置
编译完成之后,要想更好的管理服务器,就需要对一些文件进行设置,让服务器更好的运行。
2.1 对PATH环境变量的设置
在/etc/profile.d/目录下新建一个文件可执行文件apache.sh
#vim /etc/profile.d/apache.sh
#cat /etc/profile.d/apache.sh
export PATH=/usr/local/apache/bin:$PATH
PATH=/usr/local/apache/sbin:$PATH
# . /etc/profile.d/apache.sh 执行apache.sh使PATH路径多出Apache服务器的二进制可执行程序,使这些命令也可以直接使用,不用再加上路径。
#echo $PATH
/usr/local/apache/sbin:/usr/local/apache/bin:/usr/lib64/qt-3.3/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin
2.2 配置库文件
# ldconfig -v: 重新搜索当前系统上所有库文件搜索路径下的库文件,并生成缓存/etc/ld.so.cache;
如果不对apache配置,库文件搜索路径将不包括apache的库。
配置如下:
# ldconfig -v 搜索结果不包括apache的库文件路径
#vim /etc/ld.so.conf.d/apache.conf
#cat /etc/ld.so.conf.d/apache.conf
/usr/local/apache/lib 在文件中写上编译安装的源程序的lib文件路径
# ldconfig -v 刷新缓存库文件
# ldconfig -v | grep /usr/local/apache/lib : 搜索结果显示Apache的库文件路径。
ldconfig -v 刷新当前库文件信息,-v表示显示出结果,不写,就没有结果。源代码编译完成后,都要刷新库文件。
ldd /bin/ls 显示ls命令所依赖的库文件。
2.3 /usr/local/apache/conf 配置文件不需要导出。
2.4 /etc/man.config, 配置man文件帮助手册
# vim /etc/man.config
在其中加入:MANPATH /usr/local/apache/man
若不进行配置,则需要这样写
#man -M /usr/local/apache/man httpd -----M 指明路径
才能显示httpd可执行程序的man手册。
但这种方式每次用的时候,都需要写出apache的man路径。
2.5 对头文件链接:
# mkdir /usr/include/httpd
# ln -sv /usr/local/apache/include /usr/include/httpd
如果服务没有启动,这些数据是显示不出来的。
如果服务启动,在网页的地址栏输入自己的ip地址,就可以显示出网站的运行情况了。
当然,到此为止,我们只给出了正常操作的一些步骤,在编译的过程中还会出现一些意外情况,下面是我在编译过程中遇到的困难,希望能够解决读者的疑惑。
我们编译安装完了之后,服务器软件的后台就在/usr/local/apache目录下,如果我们将之删除,再装第二次,那么到了检测编译环境的时候可能会报错,说少了,apr和apr-util两个包。
原因在于,编译源程序使用的是源程序原件自己的apr和apr-util包,虽然rpm -q apr和apr-util都已经安装,但却不能在为这个编译程序使用。这时就需要到www.apache.org官网上下载apr和apr-util的源代码包了。
编译安装步骤与web服务器的编译安装类似,不同的是,我们要首先编译安装apr,然后编译安装apr-util,而且在检测编译环境的时候./configure 要加上一个选项。
编译apr的时候,./configure --prefix=/usr/local/apr
编译apr-util的时候,./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr
编译web的时候,
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr --with-apr-util=/usr/local/arp-util
其余步骤都一样的。