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

[经验分享] Linux Apache 编译安装;

[复制链接]

尚未签到

发表于 2018-11-18 14:11:45 | 显示全部楼层 |阅读模式
  Apache是常用的WEB服务端工具,在linux上称作httpd,服务名也是httpd;
  在CentOS 6上默认自带httpd2.2版本,7上默认是2.4版本;
  2.4的http支持使用event模型(每个线程对应一个客户请求);
  

  在编译安装之前需要确定apr,和apr-util已经安装,在编译安装apr-util时需要制定apr的安装路径即--with-apr=/some/PATH

  # mkdir /src    //创建一个存放源码包的目录;
  到apache官网下载httpd2.4的src源码包httpd-2.4.25.tar.bz2;
  # tar -xf httpd-2.4.25.tar.bz2    //将源码包解压;
  # cd httpd-2.4.25    //进入解压后的目录;
  # ./configure --help    //查询./configure的帮助文档;
  # ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd --enabel-so --enable-ssl --enable-cgi --enable-rewrit --with-zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
  

  --prefix=    //表示安装目录的位置;
  --sysconfdir=    //配置文件的安装位置;
  

  --enable-so    //开启动态装卸载模块功能;
  --enable-ssl    //开启ssl功能;
  --enable-cgi    //允许执行cgi脚本;
  --enable-rewrite    //开启重写功能;
  --enable-modules=[all | most]    //all表示开启所有模块,most表示开启大部分模块;
  --enable-mpms-shared=all    //指定要编译的mpm模块;
  

  --with-zlib    //支持zlib压缩;
  --with-apr    //指定apr的路劲,不指定则默认自行查找;
  --with-apr-util    //指定apr-util的路径位置;
  --with-pcre    //指定pcre;
  --with-mpm=    //指定默认使用的mpm模式;
  

  # make && make install
  

  # ln -sv /usr/local/httpd/include /usr/include    //将开发可用的头文件制成连接以供后续开发用;
  # vim /etc/man.config    //导出新的man帮助文档;
  MANPATH /usr/local/httpd/man
  

  # vim /etc/profile.d/httpd.sh    //导出可执行文件;
  echo PATH=/usr/local/httpd/bin:$PATH
  

  最后添加服务脚本
  提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:
  

  #!/bin/bash
  #
  # httpd        Startup script for the Apache HTTP Server
  #
  # chkconfig: - 85 15
  # description: Apache is a World Wide Web server.  It is used to serve \
  #        HTML files and CGI.
  # processname: httpd
  # config: /etc/httpd/conf/httpd.conf
  # config: /etc/sysconfig/httpd
  # pidfile: /var/run/httpd.pid
  

  # Source function library.
  . /etc/rc.d/init.d/functions
  

  if [ -f /etc/sysconfig/httpd ]; then
  . /etc/sysconfig/httpd
  fi
  

  # Start httpd in the C locale by default.
  HTTPD_LANG=${HTTPD_LANG-"C"}
  

  # This will prevent initlog from swallowing up a pass-phrase prompt if
  # mod_ssl needs a pass-phrase from the user.
  INITLOG_ARGS=""
  

  # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
  # with the thread-based "worker" MPM; BE WARNED that some modules may not
  # work correctly with a thread-based MPM; notably PHP will refuse to start.
  

  # Path to the apachectl script, server binary, and short-form for messages.
  apachectl=/usr/local/apache/bin/apachectl
  httpd=${HTTPD-/usr/local/apache/bin/httpd}
  prog=httpd
  pidfile=${PIDFILE-/var/run/httpd.pid}
  lockfile=${LOCKFILE-/var/lock/subsys/httpd}
  RETVAL=0
  

  start() {
  echo -n $"Starting $prog: "
  LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch ${lockfile}
  return $RETVAL
  }
  

  stop() {
  echo -n $"Stopping $prog: "
  killproc -p ${pidfile} -d 10 $httpd
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
  }
  reload() {
  echo -n $"Reloading $prog: "
  if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
  RETVAL=$?
  echo $"not reloading due to configuration syntax error"
  failure $"not reloading $httpd due to configuration syntax error"
  else
  killproc -p ${pidfile} $httpd -HUP
  RETVAL=$?
  fi
  echo
  }
  

  # See how we were called.
  case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
  status -p ${pidfile} $httpd
  RETVAL=$?
  ;;
  restart)
  stop
  start
  ;;
  condrestart)
  if [ -f ${pidfile} ] ; then
  stop
  start
  fi
  ;;
  reload)
  reload
  ;;
  graceful|help|configtest|fullstatus)
  $apachectl $@
  RETVAL=$?
  ;;
  *)
  echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
  exit 1
  esac
  

  exit $RETVAL
  

  而后为此脚本赋予执行权限:
  # chmod +x /etc/rc.d/init.d/httpd
  

  加入服务列表:
  # chkconfig --add httpd
  





运维网声明 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-636649-1-1.html 上篇帖子: 课程预告:大数据实时处理系统Apache Storm 下篇帖子: apache域名301跳转和访问控制的优先级
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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