CentOS6.4中源码安装Apache-2.2.29

分类:CentOS运维 阅读:89228 次

  1. /**
  2. *CentOS-6.4-minimal版中源码安装Apache-2.2.29
  3. *----------------------------------------------------------------------------------------------------------------------
  4. *源码安装软件时常见的三个步骤
  5. *1)配置环境:通常命令为./configure--prefix=DIR(即指定软件安装目录),如果还想启用其它功能,可在后面接着添加指令
  6. *比如下面的--enable-ssl用于启用Apache的SSL模块
  7. *若不想使用操作系统缺省的SSL库,还可通过--with-ssl=DIR指定自己编译的SSL库
  8. *2)编译源码:通常命令为make
  9. *3)安装应用:通常命令为makeinstall
  10. *----------------------------------------------------------------------------------------------------------------------
  11. *注意事项
  12. *1)httpd-2.2.29目录下的configure工具是GNU软件基金会推出的专门用于源码发布的工具
  13. *2)配置环境时若出现这个错误[configure:error:noacceptableCcompilerfoundin$PATH],是说明缺少GCC编译环境
  14. *这时执行[yum-yinstallgcc]命令安装编译源码所需的工具和库就可以了
  15. *3)执行yum命令时若出现这个错误[Error:databasediskimageismalformed],是说明yum的缓存出错,需要清理缓存
  16. *这时执行[yumcleandbcache]命令即可
  17. *4)配置环境时configure的主要工作就是生成Makefile,编译源码时的make命令就是根据Makefile来进行编译的
  18. *5)最好以root安装和启动Apache,以root运行之后,apache就会把它的派生进程切换到非root用户
  19. *----------------------------------------------------------------------------------------------------------------------
  20. *安装Perl5
  21. *[root@CentOS64software]#yum-yinstallwget
  22. *[root@CentOS64software]#wgethttp://www.cpan.org/src/5.0/perl-5.20.1.tar.gz
  23. *[root@CentOS64software]#tarzxvfperl-5.20.1.tar.gz
  24. *[root@CentOS64software]#cdperl-5.20.1
  25. *[root@CentOS64perl-5.20.1]#./Configure-des-Dprefix=/app/perl
  26. *[root@CentOS64perl-5.20.1]#make
  27. *[root@CentOS64perl-5.20.1]#makeinstall
  28. *[root@CentOS64perl-5.20.1]#perl-v
  29. *----------------------------------------------------------------------------------------------------------------------
  30. *安装OpenSSL
  31. *[root@CentOS64software]#tarzxvfopenssl-1.0.1i.tar.gz
  32. *[root@CentOS64software]#cdopenssl-1.0.1i
  33. *[root@CentOS64openssl-1.0.1i]#./config--prefix=/app/openssl
  34. *[root@CentOS64openssl-1.0.1i]#make
  35. *[root@CentOS64openssl-1.0.1i]#makeinstall
  36. *[root@CentOS64openssl-1.0.1i]#/app/openssl/bin/opensslversion
  37. *----------------------------------------------------------------------------------------------------------------------
  38. *安装Apache
  39. *[root@CentOS64software]#tarzxvfhttpd-2.2.29.tar.gz
  40. *[root@CentOS64software]#cdhttpd-2.2.29
  41. *[root@CentOS64httpd-2.2.29]#rpm-qa|grephttp
  42. *[root@CentOS64httpd-2.2.29]#./configure--prefix=/app/apache--enable-ssl--with-ssl=/app/openssl
  43. *[root@CentOS64httpd-2.2.29]#make
  44. *[root@CentOS64httpd-2.2.29]#makeinstall
  45. *----------------------------------------------------------------------------------------------------------------------
  46. *Apache的目录结构
  47. *bin------可执行文件(其实apache的可执行文件就一个:httpd,它就是apache的主程序)
  48. *使用[/app/apache/bin/httpd-l]命令可以查看apache编译了多少模块,即列出它支持的所有模块
  49. *如果其中包含[mod_so.c],则说明apache具备了动态加载模块的功能
  50. *比如说想新增加一个模块,那么就不用再编译一次apache了,只要编译一下这个模块,再在配置文件里面load进去就行了
  51. *conf-----配置文件(apache只有一个配置文件)
  52. *htdocs---缺省的网站根目录(即启动apache后,别人访问apache时,实际访问的就是该目录里面的东西)
  53. *include--头文件
  54. *logs-----日志
  55. *man------手册
  56. *manual---联机文档
  57. *modules--存放一些编译好的模块,供apache启动时动态加载
  58. *----------------------------------------------------------------------------------------------------------------------
  59. *访问Apache
  60. *由于/app/apache/bin/目录下的apache主程序httpd支持很多参数,容易搞混
  61. *为了方便用户,apache提供了一个名为apachectl的启动脚本,它也是位于/app/apache/bin/目录下的,通过[viapachectl]就可以看到脚本内容
  62. *启动apache时,在apache2.0版本中,若想启动支持SSL的apache,则需执行[apachectlstartssl]命令
  63. *而在2.2中,直接执行[apachectlstart]即可启动并支持SSL.当然前提是在httpd.conf中配置[Includeconf/extra/httpd-ssl.conf]
  64. *[root@CentOS64bin]#/app/apache/bin/apachectlstart
  65. *[root@CentOS64bin]#/app/apache/bin/apachectlrestart
  66. *[root@CentOS64bin]#/app/apache/bin/apachectlstop
  67. *----------------------------------------------------------------------------------------------------------------------
  68. *Apache安装并初次启动后,常见的修改参数
  69. *1)启动或重启apache时,控制台会打印下面的信息
  70. *httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using192.168.0.103forServerName
  71. *解决办法是修改/app/apache/conf/httpd.conf文件,取消注释[#ServerNamewww.example.com:80],再重启apache就看到效果了
  72. *2)apache启动后通过电脑访问http://192.168.0.102/,发现无法访问(成功访问时页面会显示"Itworks!")
  73. *解决办法是修改/etc/sysconfig/iptables文件,增加一行[-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT]
  74. *注意这一样要添加到默认的22端口规则的下面,若添加到iptables文件的尾部,会有可能导致防火墙启动失败
  75. *接着再执行[serviceiptablesrestart]命令重启防火墙即可,不需要重启Linux
  76. *详细说明见http://blog.csdn.net/jadyer/article/details/11324237
  77. *3)当/app/apache/htdocs/中默认的index.html不存在时,访问apache会显示htdocs目录下的文件列表,我们可以设置其不显示文件列表
  78. *解决办法是修改/app/apache/conf/httpd.conf文件,注释掉[OptionsIndexesFollowSymLinks]这一行即可
  79. *然后再访问http://192.168.0.102/,就会看到熟悉的"Forbidden:Youdon'thavepermissiontoaccess/onthisserver."
  80. *4)如果想把apache加入系统自启动,常见的方法有两种:修改配置文件和将apache注册为系统服务(还有一种是在ntsysv命令调出的图形界面中操作的)
  81. *修改配置文件的方式最简单,在/etc/rc.d/rc.local文件尾部加入[/app/apache/bin/apachectlstart]即可
  82. *----------------------------------------------------------------------------------------------------------------------
  83. *@createSep26,20149:14:43AM
  84. *@author玄玉<http://blog.csdn.net/jadyer>
  85. */