zoukankan      html  css  js  c++  java
  • 二进制编译Httpd服务器

    前言:

      Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

    环境介绍

      系统环境:CentOS7

      所需软件包:apr-1.5.1.tar.gz、apr-util-1.5.4.tar.gz、httpd-2.4.12.tar.gz

      注意:httpd2.4需要依赖apr和arp-util 1.4以上版本

    CentOS编译安装Apache准备:确保开发包组已安装(Development tools、Server Platform Development) 

    # yum groupinstall Development tools Server Platform Development

    0、查询旧版apache的包名,卸载旧版的apache

    rpm -q httpd
    rpm -e httpd-2.2.15-31.el6.centos.x86_64 --nodeps

    1、下载官方源码包并解压:  

    wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.12.tar.gz
    wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.1.tar.gz
    wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.gz

    2、解压

    tar -xvf httpd-2.4.12.tar.gz
    tar -xf apr-1.5.1.tar.gz 
    tar -xf apr-util-1.5.4.tar.gz 

    3、解决依赖关系:

    mv apr-1.5.1 httpd-2.4.12/srclib/apr
    mv apr-util-1.5.4 httpd-2.4.12/srclib/apr-util

    2、切换至源码目录:

    cd httpd-2.4.12

    3、执行configue脚本:

    ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so
    复制代码
     1 编译参数详解:
     2 
     3 --prefix:#安装路径
     4 
     5 --sysconfdir:#指定配置文件路径
     6 
     7 --enable-so:#DSO兼容,DSO=Dynamic Shared Object,动态共享对象,可实现模块动态生效
     8 
     9 --enable-ssl:#支持SSL/TLS,可实现https访问 需已安装openssl-devel
    10 
    11 --enable-cgi:#支持CGI脚本(默认对非线程的MPM模式开启)
    12 
    13 --enable-rewrite:#启用Rewrite功能,URL重写
    14 
    15 --enable-deflate:#支持压缩功能
    16 
    17 --with-zlib:#使用指定的zlib库,不指定路径会自动寻找
    18 
    19 --with-pcre:#使用指定的PCRE库,不指定路径会自动寻找 需已安装pcre-devel
    20 
    21 --with-apr:#指定apr安装路径
    22 
    23 --with-apr-util:#指定apr-util安装路径
    24 
    25 --enable-mpms-shared:#支持动态加载的MPM模块,可选参数:all
    26 
    27 --with-mpm:#设置默认启用的MPM模式,{prefork|worker|event}
    28 
    29 --enable-modules:#支持动态启用的模块,可选参数:all,most,few,reallyall
    30 
    31 #编译之前可使用./configure --help查看各项参数
    复制代码

    4、make and make install

    make && make install

    5、为了方便命令使用需要添加环境变量,编辑二进制程序如何让系统找到:

    # cat /etc/profile.d/apache.sh
    PATH=/usr/local/apache/bin:$PATH
    export PATH

    6、头文件输出给系统:

    #ln -sv /usr/local/apache/include /usr/local/include/httpd

    7、让系统重新生成库文件路径缓存

    #ldconfig -v |grep "^[^[:space:]]"

    8、启动apache服务:

    # apachectl start

    9、查看80端口是否被监听:

    netstat -ntl

    第一次遇到的情况是80端口未被监听,于是打开安装目录下:/usr/local/apache/logs/error_log出现如下提示:

    google了一下原因可能,资源受限,不能分配内存

    解决方法:

    # ulimit -u unlimited   #修改 用户最大进程数  
    # echo ulimit -u unlimited >>/etc/profile   #保存修改到自启动文件  

    再次查看80端口已被监听:

    浏览器访问测试:

     

  • 相关阅读:
    SQL Server 2008R2 附件数据库问题记录
    关于.NET C#调用Sqlite的总结二
    关于.NET C#调用Sqlite的总结一
    MS Server中varchar与nvarchar的区别
    Intellij IDEA中使用Debug调试
    使用idea关联mysql时报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
    学Redis这篇就够了
    java的动态代理机制详解
    mybatis-sql执行流程源码分析
    mybatis
  • 原文地址:https://www.cnblogs.com/zm121196/p/9635957.html
Copyright © 2011-2022 走看看