首页 > 其他 > 详细

CentOS 6.5 源码编译安装htppd并启动之.

时间:2014-02-27 19:37:38      阅读:604      评论:0      收藏:0      [点我收藏+]

   在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行.

   在Linux下分rpm安装、源码编译安装,这里主要介绍源码编译安装httpd服务,并在浏览器上访问成功:

下面让我们来一起安装吧:

1.yum配置及开发工具的安装:

 1).配置好yum源:

[root@xiaomazi ~]# mount /dev/cdrom /media/-->挂载光盘(也有其他方法,我就不演示了.)
mount: block device /dev/sr0is write-protected, mounting read-only
[root@xiaomazi ~]# cd /etc/yum.repos.d/
[root@xiaomazi yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo
[root@xiaomazi yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@xiaomazi yum.repos.d]# ls
CentOS-Base.repo.bak  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo
[root@xiaomazi yum.repos.d]# vim httpd_yum.repo-->yum源名字
注意:我上面yum源是本地光盘挂载,若是网络,这个包在安装开发工具时候的时候会很慢,
所以这里就把名字改了(CentOS-Base.repo.bak)

 2).列出所有可用yum repo.

[root@xiaomazi yum.repos.d]# yum repolist all
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
httpd_yum                                                         | 4.0 kB     00:00 ...
repo idrepo name                        status
C6.0-base                             CentOS-6.0 - Base                disabled
C6.0-centosplus                       CentOS-6.0 - CentOSPlus          disabled
httpd_yum                             httpd_yum                        enabled: 6,367
repolist: 6,367
[root@xiaomazi yum.repos.d]#

 3)安装常用开发工具以免在安装httpd时候报错:

   "Desktop Platform Development"、"Development tools"、"Server Platform Development".

[root@xiaomazi yum.repos.d]# yum groupinstall "Desktop Platfrom Development"
[root@xiaomazi yum.repos.d]# yum groupinstall "Desktop Platfrom Development"
[root@xiaomazi yum.repos.d]# yum groupinstall "Server Platform Development"
[root@xiaomazi yum.repos.d]# yum groupinstall "Development Tools"

2.我们来看下系统上有没有自安装的httpd,如有将其卸载:
1).查看:
rpm -q httpd

[root@xiaomazi ~]# rpm -q httpd
httpd-2.2.15-29.el6.centos.x86_64
[root@xiaomazi ~]# rpm -e httpd --nodeps
[root@xiaomazi ~]# ls /etc/httpd/
conf.d
[root@xiaomazi ~]# rm -rf /etc/httpd/-->删掉此前的配置文件
[root@xiaomazi ~]#
注意:如果有依赖关系,则使用(看情况使用哦.)--nideps忽略依赖关系:强制卸载

2).准备好软件包,安装:http-2.2.25.tar.bz2.并查看帮助信息.

[root@xiaomazi tmp]# tar xf httpd-2.2.25.tar.bz2 -->解压缩
[root@xiaomazi tmp]# cd httpd-2.2.25
[root@xiaomazi httpd-2.2.25]# ls
[root@xiaomazi httpd-2.2.25]# less README -->INSTALL帮助文档
[root@xiaomazi httpd-2.2.25]# ./configure --help | less -->./configure帮助文档
[root@xiaomazi httpd-2.2.25]#

3).开始执行configure脚本:(注意在编译时候注意是否有报错信息.)

[root@xiaomazi httpd-2.2.25]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd > --enable-so  换行了哈.
--prefix=/usr/local/httpd-->指定文件路径
--sysconfdir=/etc/httpd-->指定配置文件路径
--enable-so-->允许模块化使用

   ---> 执行./configure后,时间长一些,请耐心等待吆...

4).在执行完./configure脚本后,通常会遇到以下几种情况(如果是安装完开发工具后就不会出现这种问题了哦):

 I. 报错信息关键字:PCRE库

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or installthe PCRE library into the system, or build the PCRE library
statically from the sourcewith nginx by using --with-pcre=<path> option.
解决方法:
先查看下:# rpm -qa |grep pcre(依赖程序的开发环境,很多程序都有主包、分包的)
# yum list pcre*(显示出所有的pcre包)
再执行:yum -y installpcre-devel(yum安装PCRE库的相关包)

 II. 报错信息关键字:openssl

./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.  You can either disable the module by using
--without-http-cache option, or installthe OpenSSL library into the system,
or build the OpenSSL library statically from the sourcewith nginx by using
--with-http_ssl_module --with-openssl=<path> options.
运行:# yum -y install openssl-devel(yum安装OpenSSL-devel)

5).开始编译、安装:

[root@xiaomazi httpd-2.2.25]# make
[root@xiaomazi httpd-2.2.25]# make install
# make && make install-->也可以一起用.

    ---> 执行make、make install后,时间也会长一些,请耐心等待吆...

6).如果有系统自带的httpd在运行,并将其杀死之:

[root@xiaomazi httpd-2.2.25]# killall httpd-->杀死之

7).启动方式(路径方式执行也可以):

[root@xiaomazi httpd-2.2.25]# /usr/local/apache/bin/apachectl start
注意:这里我没有执行启动httpd吆!!
看看下面吧:

8).把Apache的二进制程序放到系统的PATH变量中,不用输入路径,方便程序执行:

[root@xiaomazi httpd-2.2.25]# vim /etc/profile.d/apache.sh
PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH
exportPATH
[root@xiaomazi httpd-2.2.25]# . /etc/profile.d/apache.sh-->执行脚本使其生效哦.

9).执行:echo $PATH 看看出现这程序的路径了没有.

[root@xiaomazi httpd-2.2.25]# echo $PATH
/usr/local/apache/bin:/usr/local/apache/sbin:/usr/lib6/qt-3.3/bin:/usr/local/sbin:
/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@xiaomazi httpd-2.2.25]#

10).查看端口80是否被占用,执行命令:netstat -tnl

[root@xiaomazi httpd-2.2.25]#  netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address     State
tcp        0      0 0.0.0.0:111       0.0.0.0:*           LISTEN
tcp        0      0 0.0.0.0:22        0.0.0.0:*           LISTEN
tcp        0      0 ::1:631           :::*                LISTEN
tcp        0      0 ::1:25            :::*                LISTEN
tcp        0      0 ::1:6010          :::*                LISTEN
[root@xiaomazi httpd-2.2.25]#

11).执行启动httpd:

[root@xiaomazi httpd-2.2.25]# apachectl start

12).再次查看,执行命令:netstat -tnl

[root@xiaomazi httpd-2.2.25]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address     State
tcp        0      0 0.0.0.0:111       0.0.0.0:*           LISTEN
tcp        0      0 0.0.0.0:22        0.0.0.0:*           LISTEN
... ...
tcp        0      0 :::80             :::*                LISTEN  -->80端口以启动
tcp        0      0 ::1:631           :::*                LISTEN
tcp        0      0 ::1:25            :::*                LISTEN
tcp        0      0 ::1:6010          :::*                LISTEN
[root@xiaomazi httpd-2.2.25]#

13).最后打开浏览器在地址栏内输入:http://172.16.251.96

显示: It works!恭喜:你的Apache可以运行了!!!

14).看下安装路径:

[root@xiaomazi httpd-2.2.25]# cd /usr/local/apache/
[root@xiaomazi apache]# pwd
/usr/local/apache-->安装路径
[root@xiaomazi apache]# ls
bin  build  cgi-bin  error  htdocs  icons  include  lib  logs  manmanual  modules
[root@xiaomazi apache]#

15).头文件输出给系统:

 第一种:

[root@xiaomazi apache]# ln -sv /usr/local/apache/include /usr/include/httpd-->方便管理.

   将/usr/local/apache/include/的目录导入到/usr/include/httpd目录下并重新命名为httpd,这种方法方便管理,如果将来不想管理了,就删除httpd目录就可以了.

 第二种:

[root@xiaomazi apache]# ln -sv /usr/local/apache/include/* /usr/include-->这个不方便以后管理

   将/usr/local/apache/include/*下的所文件都导入到/usr/include目录下,这种方法文件多不方便管理,将来不想管理后删除文件多 麻烦.

16).库文件输出 lib:

   我们的系统也不会在/usr/local/apache/lib下找库文件的,应该在/etc/ld.so.conf.d/创建个httpd.conf文件,并将路径写在httpd.conf文件上;系统开机时会将所有库文件缓存到/etc/ld.so.cache目录下的,因此,新添加的库文件系统默认是找不到的,要么从新启动系统,要么我们让系统重新生成库文件路径缓存:

I.系统开机时会将所有库文件缓存到/etc/ld.so.cache目录下的:

[root@xiaomazi apache]# ls -->查看:lib
bin  build  cgi-bin  error  htdocs  icons  include  lib  logs  manmanual  modules
[root@xiaomazi apache]# ls -l /etc/ld.so.cache -->所有库文件的缓存位置
-rw-r--r-- 1 root root 52542 Feb 26 12:22 /etc/ld.so.cache
[root@xiaomazi apache]# ldconfig -v -->显示详细结果
让系统重新生成库文件路径缓存

II.写入/etc/ld.so.conf.d/httpd.conf库文件之前:

[root@xiaomazi apache]# ldconfig -v |grep "^[^[:space:]]"
/usr/lib64/mysql:
/usr/lib64/qt-3.3/lib:
/usr/lib64/xulrunner-2:
/lib:
/lib64:
/usr/lib:  --->只会到这几个路径下找库.
/usr/lib64:
/lib64/tls: (hwcap: 0x8000000000000000)
/usr/lib64/tls: (hwcap: 0x8000000000000000)
/usr/lib64/sse2: (hwcap: 0x0000000004000000)
[root@xiaomazi apache]# cat /etc/ld.so.conf.d/httpd
usr/local/apache/bin(可以写多个路径)

III.编辑库文件/etc/ld.so.conf.d/httpd.conf,将路径写入文件中:

[root@xiaomazi apache]# cat /etc/ld.so.conf.d/httpd.conf
usr/local/apache/lib
[root@xiaomazi apache]#

IV.写入/etc/ld.so.conf.d/httpd.conf库文件之后:

[root@xiaomazi apache]# ldconfig -v |grep "^[^[:space:]]"
ldconfig: Can‘t stat usr/local/apache/lib: No such fileor directory
/usr/lib64/mysql:-->查看在这里哦.
/usr/lib64/qt-3.3/lib:
/usr/lib64/xulrunner-2:
/lib:
/lib64:
/usr/lib:
/usr/lib64:
/lib64/tls: (hwcap: 0x8000000000000000)
/usr/lib64/tls: (hwcap: 0x8000000000000000)
/usr/lib64/sse2: (hwcap: 0x0000000004000000)
[root@xiaomazi apache]#

17).导出man文件:

  因为系统默认找不到,所以我们还是需要自己手动添加一条,vim /etc/man.config,为了确保找到的帮助信息是我们所要的应该怎么办呢?

[root@xiaomazi apache]# ls
bin  build  cgi-bin  error  htdocs  icons  include  lib  logs  manmanual  modules
[root@xiaomazi apache]# ls man
man1  man8
[root@xiaomazi apache]# ls man/man1
dbmmanage.1  htdbm.1  htdigest.1  htpasswd.1  httxt2dbm.1
[root@xiaomazi apache]# ls man/man8
ab.8  apachectl.8  apxs.8  htcacheclean.8  httpd.8  logresolve.8  rotatelogs.8  suexec.8
[root@xiaomazi apache]# man httpd
[root@xiaomazi apache]# vim /etc/man.config

bubuko.com,布布扣







A smile is the most beautiful language!!!

----------------------------------------------------------------------------------------

bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣欢迎纠错哦..bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

                                                                        ---->小马子


本文出自 “凡事总要想着行” 博客,请务必保留此出处http://xiaomazi.blog.51cto.com/5891742/1363861

CentOS 6.5 源码编译安装htppd并启动之.,布布扣,bubuko.com

CentOS 6.5 源码编译安装htppd并启动之.

原文:http://xiaomazi.blog.51cto.com/5891742/1363861

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!