设为首页 收藏本站
查看: 1030|回复: 0

[经验分享] Linux下安装Apache服务器

[复制链接]

尚未签到

发表于 2018-11-26 11:33:30 | 显示全部楼层 |阅读模式
  
          Apache服务器是目前比较主流的web服务器。在目前市场是占用很大的市场份额。
    Apache服务器之所以能够长期作为Web服务器的实际标准,与其具有的诸多优秀特性是密不可分的


  

  


  主要特点
  开放源代码、跨平台应用
  支持多种网页编程语言
  模块化设计 、运行稳定、良好的安全性
  软件版本
  1.X
  
  
  
  
      目前最高版本是1.3,运行稳定


  
  
  
  
      向下兼容性较好,但缺乏一些较新的功能


  2.X
  
  
  
  
      目前主要包括2.0和2.2两个版本


  
  
  
  
      具有更多的功能特性


  
  
  
  
      与1.X相比,配置管理风格存在较大差异


  
  
  
  
      1.X版本和2.X版本并存,同时进行维护。1.X系列侧重于维持既有功能的一贯稳定性,而2.X系列则增加了一些性能优化措施,提供对更多扩展功能的支持,例如:2.X系列采用了MPM(Multi Processing Modules,多道处理模块)机制,负责绑定本机网络端口、接受访问请求,提高了Web服务的性能


  对于新建立的Web站点服务器,通常会选用2.x系列的版本;而对于已经使用较长时间的既有Web应用服务器,可能会仍然维持使用1.x系列版本

  
  
      编译安装


  编译安装的优点
  具有较大的自由度,功能可定制
  可及时获得最新的软件版本
  普遍适用于大多数Linux版本,便于移植使用
  对于源码编译安装的httpd软件包,服务目录通常也就是安装目录,所有的程序、文件、子目录等都集中在服务目录下
主要目录和文件:

  服务目录:/usr/local/apache2/
  主配置文件:/usr/local/apache2/conf/httpd.conf
  网页目录:/usr/local/apache2/htdocs/
  服务脚本:/usr/local/apache2/bin/apachectl
  执行程序:/usr/local/apache2/bin/httpd
  访问日志: /usr/local/apache2/log/access_log
  错误日志: /usr/local/apache2/log/error_log
  获得Apache服务器的源码包
  参考地址:
    http://httpd.apache.org/download.cgi

  下面来介绍一下主流的安装步骤:
  一:准备工作

  
  
    在安装httpd之前必须要配置好DNS服
Httpd

  
  
    安装Apache的主要步骤如下:

  1. 解包
  tar  zxvf httpd-2.2.9.tar.gz  -C  /usr/src/
  2. 编译前的配置
  cd  /usr/src/httpd-2.2.9
  ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
  这一步是根据你的特定平台和个人需求配置源代码树。位于发行源代码根目录的configure脚本会完成这个步骤(对下载Apache CVS版源代码的开发者,需要装有autoconf和libtool ,并需要执行buildconf ,对于官方的发行版则没这个必要)。
  
    
  

  要想用所有的默认值配置源代码树只要简单的执行 ./configure 命令就可以了,同时configure还可以接受命令行参数以改变默认值。
  
    
  

  最重要的选项是Apache安装目录的前缀:--prefix ,因为Apache需要知道这个目录才能正常运作。更多的微调选项请参考配置选项详解。
  
    
  

  这样,你就可以通过在配置选项中指定要启用或禁用哪些模块来定制Apache的特性。Base组的模块默认包含在Apache中。其他组的模块可以通过 --enable-module 指令启用。其中module是模块名去掉"mod_"并将下划线转换成连字符后的字符串。你也可以使用 --enable-module=shared 指令将模块编译为可在运行时加载和卸载的动态共享对象(DSO)。同样的,你也可以使用 --disable-module 指令禁用Base组的模块。注意,使用这些指令的时候configure不会对你拼写错误的模块发出警告说找不到某某模块,而只是简单的忽略这个选项。
  
    
  

  另外,有时候还必须提供给configure脚本关于编译器、库、头文件位置的更多信息。这些可以通过环境变量或者命令行选项传递给configure脚本。要了解更多信息,请参考配置源代码树。
  
    
  

  为了让你对能指定什么有一个简单的印象,此例演示编译Apache ,并将其安装在/sw/pkg/apache目录,指定了一个特定的编译器以及编译参数,而且允许今后将两个附加的模块mod_rewrite和mod_speling通过DSO机制在运行时动态加载:
  
    
  

  $ CC="pgcc" CFLAGS="-O2" \
  ./configure --prefix=/sw/pkg/apache \
  --enable-rewrite=shared \
  --enable-speling=shared
  
    
  

  configure需要运行几分钟,以测试指定的功能在你的系统中是否有效,并建立稍后编译时所需的许多Makefile文件。
    
知识补充:

  
  
      httpd.conf配置文件


   DSC0000.jpg


  
  
      使用下面的命令可以获得有效配置清单:


  
  
    grep -v "#" httpd.conf.bak | grep -v "^$" > httpd.conf

  常用的全局配置参数
  ServerRoot:服务目录
  ServerAdmin:管理员邮箱
  User:运行服务的用户身份
  Group:运行服务的组身份
  ServerName:网站服务器的域名
  DocumentRoot:网页文档的根目录
  Listen:监听的IP地址、端口号
  PidFile:保存httpd进程PID号的文件
  DirectoryIndex:默认的索引页文件
  ErrorLog:错误日志文件的位置
  CustomLog:访问日志文件的位置
  LogLevel:记录日志的级别,默认为warn
  Timeout:网络连接超时,默认为300秒
  KeepAlive:是否保持连接,可选On或Off
  MaxKeepAliveRequests:每次连接最多请求文件数
  KeepAliveTimeout:保持连接状态时的超时时间
  Include:需要包含进来的其他配置文件
  升级
  升级的第一步是阅读源代码目录中的发布公告(release announcement)和CHANGES文件以寻找可能会对你的站点产生影响的变化。如果主板本号的变化(例如1.3→2.0或2.0→2.2)表明编译时和运行时的配置发生了重大变化,需要手动调整,所有模块也需要升级以兼容新版本的模块API 。
  
    
  

  小幅度的版本升级(例如:2.2.55→2.2.57)很容易。make install 的过程不会改写任何已经存在的文档、日志、配置文件。此外,开发者也会尽量兼容上一版本的configure选项、运行时配置、模块API 。大多数情况下,你将能够使用与上一版本完全相同的configure命令行和运行时配置,而你原来的所有模块也将正常工作。
  
    
  

  如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。这个文件精确地保存了所有对目录树进行配置的configure命令行。你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后,然后运行下面的命令即可完成升级:
  
  
  $ ./config.nice
  $ make
  $ make install
  $ PREFIX/bin/apachectl -k graceful-stop
  $ PREFIX/bin/apachectl -k start
  
  
  
  

  
  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-639802-1-1.html 上篇帖子: 关于Apache 的重定向问题 下篇帖子: yum实现svn+apache+ssl整合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表