zoukankan      html  css  js  c++  java
  • Linux(centos发行版)Apache编译安装

    需要安装的依赖软件包

    1、apr            Apache可移植运行库,下载地址:http://mirror.bit.edu.cn/apache/apr

    2、apr-util      下载地址:http://mirror.bit.edu.cn/apache/apr

    3、pcre         支持正则,下载地址:https://ftp.pcre.org/pub/pcre/

    4、openssl    下载地址:https://www.openssl.org/source/old/1.1.1/

    5、zlib            下载地址:http://www.zlib.net/fossils/

    参考Apache官方文档安装指南:http://httpd.apache.org/docs/2.4/install.html

    解压

    下载apache软件包,下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/

    # mkdir /opt/packages
    # mkdir /opt/softwares
    # mkdir /opt/softwares/src

    # tar xfz httpd
    -2.4.48.tar.gz -C /opt/softwares/src # tar xfz pcre-8.44.tar.gz -C /opt/softwares/src
    # tar xfz apr-1.7.0.tar.gz -C /opt/softwares/src/
    # tar xfz apr-util-1.6.1.tar.gz -C /opt/softwares/src/

    安装过程

    1、安装pcre

    # cd /opt/softwares/src/pcre-8.44/
    
    # ./configure --prefix=/opt/softwares/pcre-8.44
    
    # make && make install

    2、安装zlib

    # cd /opt/softwares/src/zlib-1.2.11/
    
    # ./configure --prefix=/opt/softwares/zlib
    
    # make && make install

    3、安装openssl

    # cd /opt/softwares/src/openssl-1.1.1j/
    
    # ./config -fPIC --prefix=/opt/softwares/openssl enable-shared
    
    # make && make install

    安装后备份之前版本的openssl,调整动态库路径

    # which openssl
    /usr/bin/openssl
    
    ### 备份
    
    # mv  /usr/bin/openssl{,.old}
    # mv /etc/ssl{,.bak} #删除配置文件

    修改openssl的库文件路径

    # echo "/opt/softwares/openssl/lib" >> /etc/ld.so.conf
    
    # ldconfig -v              # 使配置生效

    设置openssl命令的软链接,并验证

    # ln -s /opt/softwares/openssl/bin/openssl /usr/local/bin/openssl
    
    # openssl version -a
    OpenSSL 1.1.1j  16 Feb 2021

    4、安装httpd

    将apr-和apr 移动到下,并去掉版本号

    # cd /opt/softwares/src/httpd-2.4.48/
    
    # ./configure --prefix=/opt/softwares/http-2.4.48 --enable-so --enable-so --enable-ssl --with-ssl=/opt/softwares/openssl --enable-cgi --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --with-pcre=/opt/softwares/pcre-8.44 --with-zlib=/opt/softwares/zlib --with-apr=/opt/softwares/apr --with-apr-util=/opt/softwares/apr-util --enable-expires --enable-deflate
    
    
    --prefix=/opt/softwares/http-2.4.48       //指定apache的安装路径
    --enable-so                    //这个是支持动态共享模块
    --enable-rewrite                //支持URL重写
    --enable-ssl                   //支持ssl
    --with-ssl=/opt/softwares/openssl      //这个是指定openssl的安装位置
    --enable-cgi                   //启用cgi
    --enable-modules=most             // 指明要静态编译到httpd二进制文件的模块 all或者most,all代表包含所有的模块 most代表大部分的模块
    --enable-mods-shared=most           // 指明要以DSO方式编译的模块,all代表全部,most代表大部分
    --enable-mpms-shared=all            // 启用MPM所有支持的模式,这样event,worker,prefork就会以模块化的方式安装,要用哪个就在httpd.conf里面配置就好了
    --with-mpm=event                 // 指定启用mpm模式,默认使用enevt模式,在apache的早期版本2.0默认prefork,2.2版本是worker 2.4版本是event.
    --with-pcre=/opt/softwares/pcre       // 支持 pcre
    --with-z=/opt/softwares/zlib          // 使用 zlib 压缩库
    --with-apr=/opt/softwares/apr          // 指定 apr 的安装路径
    --with-apr-util=/opt/softwares/apr-util   // 指定 apr-util 的安装路径
    --enable-expires                  // 激活彧通过配置文件控制 HTTP 的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css 等内容,提供客户端浏览器缓存设置
    --enable-deflate                 // 提供对内容的压缩传输编码支持,一般是 html、js、css 等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是 apache 调优的一个重要选项之一

    make报错

    collect2: error: ld returned 1 exit status
    make[2]: *** [htpasswd] Error 1
    make[2]: Leaving directory `/opt/softwares/src/httpd-2.4.48/support'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/opt/softwares/src/httpd-2.4.48/support'
    make: *** [all-recursive] Error 

    解决办法

    将解压出来的 apr-1.7.0 和 apr-util-1.6.1 拷贝到 /opt/softwares/src/httpd-2.4.48/srclib/ 目录下,并且去掉版本号。并且在编译参数后加上  --with-included-apr

    不去掉版本号会报错:configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

    # mv /opt/softwares/src/httpd-2.4.48/srclib/apr-1.7.0 /opt/softwares/src/httpd-2.4.48/srclib/apr
    
    # mv /opt/softwares/src/httpd-2.4.48/srclib/apr-util-1.6.1 /opt/softwares/src/httpd-2.4.48/srclib/apr-util

    再次编译安装

    # ./configure --prefix=/opt/softwares/http-2.4.48 --enable-so --enable-so --enable-ssl 
    --with-ssl=/opt/softwares/openssl --enable-cgi --enable-modules=most --enable-mods-shared=most
    --enable-mpms-shared=all --with-mpm=event --with-pcre=/opt/softwares/pcre-8.44
    --with-zlib=/opt/softwares/zlib --enable-expires --enable-deflate -with-included-apr
    # make && make install
    

    至此安装完成!

    apache操作

    使用systemctl管理apache

    # vim /usr/lib/systemd/system/httpd.service
    [Unit]
    Description=The Apache HTTP Server
    After=network.target remote-fs.target nss-lookup.target
    Documentation=man:httpd(8)
    Documentation=man:apachectl(8)
    
    [Service]
    Type=simple
    ExecStart=/opt/softwares/http-2.4.48/bin/httpd -DFOREGROUND
    ExecReload=/opt/softwares/http-2.4.48/bin/httpd -k graceful
    ExecStop=/bin/kill -WINCH ${MAINPID}
    KillSignal=SIGCONT
    PrivateTmp=true
    LimitNOFILE=infinity
    KillMode=mixed
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target

    添加权限

    # chmod +x /usr/lib/systemd/system/chronyd.service

    创建软链接

     ln -s /usr/lib/systemd/system/httpd.service /etc/systemd/system/multi-user.target.wants/

    启动apache

    # systemctl start httpd
    
    [root@localhost ~]# ss -lntp
    State      Recv-Q Send-Q                                 Local Address:Port                                                Peer Address:Port              
    LISTEN     0      128                                                *:22                                                             *:*                   users:(("sshd",pid=867,fd=3))
    LISTEN     0      100                                        127.0.0.1:25                                                             *:*                   users:(("master",pid=1034,fd=13))
    LISTEN     0      128                                               :::80                                                            :::*                   users:(("httpd",pid=1462,fd=4),("httpd",pid=1461,fd=4),("httpd",pid=1460,fd=4),("httpd",pid=1459,fd=4))
    LISTEN     0      128                                               :::22                                                            :::*                   users:(("sshd",pid=867,fd=4))
    LISTEN     0      100                                              ::1:25                                                            :::*        

    查看apache的工作模式

    # httpd -V
    Server version: Apache/2.4.48 (Unix)
    Server built:   May 31 2021 04:50:25
    Server's Module Magic Number: 20120211:105
    Server loaded:  APR 1.7.0, APR-UTIL 1.6.1
    Compiled using: APR 1.7.0, APR-UTIL 1.6.1
    Architecture:   64-bit
    Server MPM:     event
      threaded:     yes (fixed thread count)
        forked:     yes (variable process count)
    Server compiled with....
     -D APR_HAS_SENDFILE

    查看apache加载的模块

    # apachectl -M
    
    或者
    
    # apachectl -l
    
    或者
    # apachectl -D DUMP_MODULES

     

  • 相关阅读:
    iOS8 定位补充
    iOS系统导航/自绘制导航路线
    自定义大头针
    添加大头针
    iOS 地图
    iOS 定位
    UISearchBar
    NSPredicate谓词
    iOS的设备及分辨率、图片命名
    UIImageView、UISlider、UISwitch、UIStepper、UISegmentControl
  • 原文地址:https://www.cnblogs.com/zh-dream/p/14832154.html
Copyright © 2011-2022 走看看