zoukankan      html  css  js  c++  java
  • httpd-2.4源码编译

    httpd-2.4源码编译

    APR

    APR(Apache portable Run-time libraries,Apache可移植运行库) 主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。

    随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如用于服务器压力测试的Flood loader tester,该项目不仅仅适用于Apache

    http://httpd.apache.org/test/flood

    httpd-2.4源码编译

    安装httpd-2.4

    准备工作:

    在官网下载apr和apr-util包以及httpd-2.4包:

    httpd下载网址:http://httpd.apache.org/

    apr相关网址:http://apr.apache.org/download.cgi

    image-20210622084223003

    开始源码编译httpd-2.4

    (1)将下载的包rz到linux中

    (2)新建文件,将下载的apr、apr-util以及httpd包全部放在此文件,方便查找

    [root@centos777~]#mkdir src
    [root@centos777~]#mv apr* httpd-2.4.39.tar.bz2  src/
    [root@centos777~]#cd src
    [root@centos777src]#ls
    apr-1.7.0.tar.bz2  apr-util-1.6.1.tar.bz2  httpd-2.4.39.tar.bz2
    

    (3)开始安装开发环境包组及相关依赖的包:

    [root@centos777src]#yum groupinstall "development tools"  安装开发包组
    [root@centos777src]#yum install pcre-devel openssl-devel expat-devel  相关依赖的包
    

    (4)解压三个下载下来的包,并将解压后的到复制到httpd指定的目录下

    [root@centos777src]#tar xvf apr-util-1.6.1.tar.bz2
    [root@centos777src]#tar xvf httpd-2.4.39.tar.bz2
    [root@centos777src]#tar xvf apr-1.7.0.tar.bz2
    [root@centos777src]#cp -r apr-1.7.0 httpd-2.4.39/srclib/apr  将apr包复制到指定的httpd/srclib目录下,起名叫apr
    [root@centos777src]#cp -r apr-util-1.6.1  httpd-2.4.39/srclib/apr-util  将apr-util复制到httpd/srclib目录下,起名叫apr-util
    

    (5)切换到httpd目录下,开始./configure编译

    [root@centos777httpd-2.4.39]#cd httpd-2.4.39/  切换到httpd目录下,然后开始编译
    以下是编译命令,指定相关文件、配置、程序等内容:
    ./configure 
    --prefix=/app/httpd24 
    --enable-so 
    --enable-ssl 
    --enable-cgi 
    --enable-rewrite 
    --with-zlib 
    --with-pcre 
    --with-included-apr 
    --enable-modules=most 
    --enable-mpms-shared=all 
    --with-mpm=prefork
    

    (6)make && make install 编译

    [root@centos777httpd-2.4.39]#make && make install
    

    (7)定义环境变量并生效  

    [root@centos777httpd-2.4.39]#echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd24.sh
    [root@centos777httpd-2.4.39]#.  /etc/profile.d/httpd24.sh
    

    (8)启动和关闭apache服务  

    [root@centos777~]#apachectl  start
    [root@centos777~]#apachectl  stop
    

    查看网页,以显示结果,源码编译完成!

    image-20210622084658357

    创建虚拟主机

    A主机:IP地址为192.168.34.102

    B主机:IP地址为192.168.34.100

    在A主机上配置

    (1)创建文件及临时网址

    [root@centos777~]#mkdir /data/{a,b}site -pv
    mkdir: created directory ‘/data/asite’
    mkdir: created directory ‘/data/bsite’
    [root@centos777~]#echo www.a.com > /data/asite/index.html
    [root@centos777~]#echo www.b.net > /data/bsite/index.html
    

    (2)修改配置文件 

    [root@centos777~]#cd /app/httpd24
    [root@centos777httpd24]#ls
    bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
    [root@centos777httpd24]#cd conf
    [root@centos777conf]#vim httpd.conf 在此配置文件中可以修改,启用虚拟机功能
    

    image-20210622084751279

    (3)切换到extra目录下,并修改httpd-vhosts.coonf配置文件

    [root@centos777conf]#cd extra/
    [root@centos777extra]#ls
    httpd-autoindex.conf  httpd-default.conf  httpd-languages.conf  httpd-mpm.conf                 httpd-ssl.conf      httpd-vhosts.conf
    httpd-dav.conf        httpd-info.conf     httpd-manual.conf     httpd-multilang-errordoc.conf  httpd-userdir.conf  proxy-html.conf
    [root@centos777extra]#vim httpd-vhosts.conf
    <VirtualHost *:80>
    DocumentRoot "/data/asite/"
    ServerName "www.a.com"
    ErrorLog "logs/a.com-error_log"
    CustomLog "logs/a.com-access_log" common
    <directory /data/asite>
    require all granted
    </directory>
    </VirtualHost>
     
    <VirtualHost *:80>
    DocumentRoot "/data/bsite/"
    ServerName "www.b.net"
    ErrorLog "logs/b.net-error_log"
    CustomLog "logs/b.net-access_log" common
    <directory /data/bsite>
    require all granted
    </directory>
    </VirtualHost>
    

    image-20210622084834054

    在B主机上配置并验证

    修改hosts配置文件,作为解析A主机的IP网址

    vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 centos7.localdomain
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.34.102 www.a.com www.b.net
    

    image-20210622084905323

    验证效果:

    [root@centos7~]#curl www.a.com
    www.a.com
    [root@centos7~]#curl www.b.net
    www.b.net
    

    实现开机启动apache服务:

    (1)修改/etc/rc.local配置文件,在最底部写上apache的路径

    vim /etc/rc.local
    /app/httpd24/bin/apachectl 
    

    image-20210623083502968

    (2)加上执行权限并重启

    [root@centos777asite]#chmod +x /etc/rc.local
    [root@centos777asite]#reboot
    

    (3)验证效果,在B主机上继续查看网址,由于apache开机自启,就可以直接访问了

    image-20210623083556450

    如果想自定义启动脚本,可以将已经装好的centos6的httpd配置文件复制到另一个centos6,稍加修改即可

    centos6配置文件复制到另一个centos6目录下:

    [root@centos6~]#scp /etc/rc.d/init.d/httpd 192.168.34.102:/etc/rc.d/init.d/httpd24
    httpd   
    

    修改httpd24配置文件 

    vim /etc/rc.d/init.d/httpd24
    apachectl=/app/httpd24/bin/apachectl
    httpd=${HTTPD-/app/httpd24/bin/httpd}
    prog=httpd
    pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
    lockfile=${LOCKFILE-/var/lock/subsys/httpd24} 
    

    image-20210623083721810

    启动httpd服务,查看80端口已经打开。

    image-20210623083749968

    image-20210623083818540

    转载至: https://www.cnblogs.com/struggle-1216/p/11959047.html

    很高兴各位朋友能欣赏作品,本文版权归作者和博客园共有,欢迎转载,请在文章页面明显位置给出原文出处,否则将追究法律责任。 原文链接: https://www.cnblogs.com/strugger-0316
  • 相关阅读:
    log4Net使用
    VS Code入门
    用VS Code写Python
    C#(99):LINQ查询操作符实例
    C#(99):LINQ to Objects(2)
    spring mvc 配置对静态资源的访问
    EntLib 自动数据库连接字符串加密
    块级格式化上下文( Block formatting contexts)
    Entlib DAAB映射枚举类型
    js 继承
  • 原文地址:https://www.cnblogs.com/strugger-0316/p/14970670.html
Copyright © 2011-2022 走看看