zoukankan      html  css  js  c++  java
  • 源码编译 apache2.4

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


    [root@Jaking12 ~]# yum install -y gcc pcre pcre-devel expat-devel bzip2 openssl-devel zlib* libtool [root@Jaking12 src]# rz [root@Jaking12 src]# tar xvf apr-1.7.0.tar.gz [root@Jaking12 src]# ls apr-1.7.0 apr-1.7.0.tar.gz [root@Jaking12 src]# cd apr-1.7.0 [root@Jaking12 apr-1.7.0]# ./configure --prefix=/usr/local/apr [root@Jaking12 apr-1.7.0]# make [root@Jaking12 apr-1.7.0]# make install [root@Jaking12 apr-1.7.0]# cd .. [root@Jaking12 src]# rz rz waiting to receive. zmodem trl+C ȡ 100% 541 KB 541 KB/s 00:00:01 0 Errors.. [root@Jaking12 src]# ls apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz [root@Jaking12 src]# tar xf apr-util-1.6.1.tar.gz [root@Jaking12 src]# ls apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz [root@Jaking12 src]# cd apr-util-1.6.1 [root@Jaking12 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@Jaking12 apr-util-1.6.1]# make [root@Jaking12 apr-util-1.6.1]# make install
    更多的选项可以通过./configure --help 了解
    官方的编译选项文档http://httpd.apache.org/docs/current/programs/configure.html
    
    --prefix=/usr/local/apache 
    --sysconfdir=/etc/httpd         //  指定配置文件在安装在哪个路径。如不指定,配置文件就在程序安装的目录;如指定/etc目录
    --with-apr=/usr/local/apr       // 指定依赖的apr路径。注意必须指明路径,否则编译时会自动去找/usr下的apr,而不是编译的高版本apr,下同
    --with-apr-util=/usr/local/apr-util 
    --with-mpm=MPM          //指定默认的    [prefork | worker | event]	如3种MPM模块都编译了,则通过此项指定默认使用哪种
    --with-pcre              //依赖pcre库用于解决正则表达式问题。    ## 安装  pcre-devel(兼容Perl的正则表达式库)
    --enable-so             //打开 so 模块,启用动态装载模块功能
    --enable-ssl             //启用ssl功能。注意要先安装,https使用
    --enable-cgi            //启用cgi功能,为非线程方式工作的mpm使用
    --enable-cgid         //以线程工作(worker/event)的mpm使用
    --enable-rewrite     //支持 URL 重写
    --enable-zlib          //通用压缩机制
    --enable-module=most      //[ all | most | ……]	指定启用哪些模块。可指定具体的模块名,也可使用all表示启用所有模块,most表示启用大多数常用模块。
                                            一般使用most即可
    --enable-mpms-shared=all        //启用MPM支持的模式,启用哪种mpm(prefork,worker,event),使用worker或event时要另外一种方式编译php(编译时使用了–enable-maintainer-zts选项)
    --enable-deflate       //传输压缩机制,节约带宽提供对内容的压缩传输编码支持一般是html、js、css等内容的站点。使用此参数会大大
                                     提高传输速度提升访问者访问的体验。在生产环境中这是apache调优的一个重要选项之一
    
    [root@Jaking12 apr-util-1.6.1]# cd ..
    [root@Jaking12 src]# rz
    rz waiting to receive.
     zmodem trl+C ȡ
    
      100%    8983 KB 8983 KB/s 00:00:01       0 Errors
    
    [root@Jaking12 src]# ls
    apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1  apr-util-1.6.1.tar.gz  httpd-2.4.39.tar.gz
    [root@Jaking12 src]# tar xf httpd-2.4.39.tar.gz 
    [root@Jaking12 src]# ls
    apr-1.7.0         apr-util-1.6.1         httpd-2.4.39
    apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.39.tar.gz
    [root@Jaking12 src]# cd httpd-2.4.39
    [root@Jaking12 httpd-2.4.39]# ./configure --prefix=/usr/local/apache24  --enable-so  --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all  --with-mpm=event
    [root@Jaking12 httpd-2.4.39]# make 
    [root@Jaking12 httpd-2.4.39]# make install
    
    所有组件        /usr/local/apache24   
    主配置文件    /usr/local/apache24/conf   
    启动脚本       /usr/local/apache24/bin/apachectl
    
    [root@Jaking12 httpd-2.4.39]# ls /usr/local/apache24/
    bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
    [root@Jaking12 httpd-2.4.39]# ls /usr/local/apache24/conf/
    extra  httpd.conf  magic  mime.types  original
    [root@Jaking12 httpd-2.4.39]# ls /usr/local/apache24/bin/
    ab         apxs      dbmmanage  envvars-std  htcacheclean  htdigest  httpd      logresolve
    apachectl  checkgid  envvars    fcgistarter  htdbm         htpasswd  httxt2dbm  rotatelogs
    [root@Jaking12 httpd-2.4.39]# ll /usr/local/apache24/bin/apachectl  
    -rwxr-xr-x 1 root dip 3440 Mar 10 16:45 /usr/local/apache24/bin/apachectl
    
    启动 apache2.4
    [root@Jaking12 httpd-2.4.39]# /usr/local/apache24/bin/apachectl
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::250:56ff:fe2c:fe97%ens33. Set the 'ServerName' directive globally to suppress this message
    这是一个提示,问题不大 (⊙o⊙)…
    
    重启 apache2.4
    [root@Jaking12 httpd-2.4.39]# /usr/local/apache24/bin/apachectl graceful 
    
    查看 apache2.4 相关信息
    [root@Jaking12 httpd-2.4.39]# netstat -pantul | grep 80
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      807/sshd            
    tcp6       0      0 :::80                   :::*                    LISTEN      35199/httpd         
    tcp6       0      0 :::22                   :::*                    LISTEN      807/sshd  
    [root@Jaking12 httpd-2.4.39]# grep DocumentRoot /usr/local/apache24/conf/httpd.conf    
    # DocumentRoot: The directory out of which you will serve your
    DocumentRoot "/usr/local/apache24/htdocs"
        # access content that does not live under the DocumentRoot.
    [root@Jaking12 httpd-2.4.39]# ls /usr/local/apache24/htdocs
    index.html
    [root@Jaking12 httpd-2.4.39]# cat /usr/local/apache24/htdocs/index.html
    It works!
    

    源码编译 apache2.4源码编译 apache2.4

    自定义首页内容
    [root@Jaking12 httpd-2.4.39]# vim /usr/local/apache24/htdocs/index.html
    It works!
    Hello World!
    

    源码编译 apache2.4源码编译 apache2.4

    设置文件共享服务
    [root@Jaking12 httpd-2.4.39]# cd /usr/local/apache24/htdocs/
    [root@Jaking12 htdocs]# ls
    index.html
    [root@Jaking12 htdocs]# touch file{1..10}
    [root@Jaking12 htdocs]# ls
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9  index.html
    [root@Jaking12 htdocs]# mv index.html index.html.bak
    [root@Jaking12 htdocs]# ls
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9  index.html.bak
    

    源码编译 apache2.4源码编译 apache2.4

    总结

    至此,实战演示源码编译 apache2.4完毕。

  • 相关阅读:
    CF 1182F Maximum Sine——根号算法
    左偏树学习笔记
    CF1182 D Complete Mirror——思路
    AT3576 E Popping Balls——计数思路
    loj 6053 简单的函数 —— min_25筛
    bzoj 2784 时间流逝 —— 树上高斯消元
    loj 2542 随机游走 —— 最值反演+树上期望DP+fmt
    poj 2096 , zoj 3329 , hdu 4035 —— 期望DP
    loj 6485 LJJ学二项式定理 —— 单位根反演
    bzoj 3328 PYXFIB —— 单位根反演
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/13191829.html
Copyright © 2011-2022 走看看