zoukankan      html  css  js  c++  java
  • 编译安装httpd 2.4

    author:JevonWei
    版权声明:原创作品


    • 官方网站下载httpd2.4、apr及apr-util的相关软件包,并传输到centos 7系统中的/usr/local/src(apr1.6版本过高不兼容,故需下载apr-1.5*版本)

      httpd2.4
      http://httpd.apache.org/download.cgi#apache2.4
      apr及apr-util
      http://httpd.apache.org/download.cgi#apache2.4

      lftp 172.16.0.1:/pub/Sources/sources/httpd> mget apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2

    • 解压软件包并安装开发包组

      [root@danran src]# cd /usr/local/src
      [root@danran src]# ls
      apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2
      [root@danran src]# tar -xf apr-1.5.2.tar.bz2
      [root@danran src]# tar -xf apr-util-1.5.4.tar.bz2
      [root@danran src]# tar xf httpd-2.4.27.tar.bz2
      [root@danran src]# ls
      [root@danran src]# ls
      apr-1.5.2 apr-util-1.5.4 httpd-2.4.27
      apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2
      [root@danran src]# yum -y groupinstall "Development Tools"

    方法一、apr、apr-util、httpd24分别编译

    编译安装apr

    [root@danran src]# mkdir /usr/local/apr \新建/usr/local/apr做apr的安装目录
    [root@danran src]# cd apr-1.5.2/
    [root@danran apr-1.5.2]# ./configure --prefix=/usr/local/apr \--prefix指定安装目录
    [root@danran apr-1.5.2]# make && make install  \安装
    

    编译安装apr-util

    [root@danran src]# mkdir /usr/local/apr-util \创建apr-util的安装目录
    [root@danran src]# cd apr-util-1.5.0/
    [root@danran apr-util-1.5.0]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr \--with-apr 指定apr的安装目录,--prefix=/usr/local/apr-utils指定apr-util的安装目录
    [root@danran apr-util-1.5.0]# make && make install 
    

    编译httpd 2.4

    [root@danran src]# mkdir /usr/local/httpd24
    
    • 编译

      [root@danran httpd-2.4.27]# ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --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-mpms-shared=all --with-mpm=prefork -with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util指定apr及apr-util的安装目录
      checking for gcc option to accept ISO C99... -std=gnu99
      checking for pcre-config... false
      configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
      提示pcre包没有安装,故需安装pcre-devel开发包
      [root@danran httpd-2.4.27]# yum -y install pcre-devel

    • 再次执行编译

      [root@danran httpd-2.4.27]# ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --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-mpms-shared=all --with-mpm=prefork
      checking whether to enable mod_ssl... checking dependencies
      checking for OpenSSL... checking for user-provided OpenSSL base directory... none
      checking for OpenSSL version >= 0.9.8a... FAILED
      configure: WARNING: OpenSSL version is too old
      no
      checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
      根据提示,openssl软件包缺失,需安装openssl-devel开发包
      [root@danran httpd-2.4.27]# yum -y install openssl-devel

    • 缺失的程序包安装完毕再次执行编译安装

      [root@danran httpd-2.4.27]# ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --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-mpms-shared=all --with-mpm=prefork

      [root@danran httpd-2.4.27]# make && make install

    法二 apr、apr-util、httpd三个程序包一起编译

    [root@danran src]# mv apr-1.5.2 httpd-2.4.27/srclib/apr
    [root@danran src]# mv apr-util-1.5.4 httpd-2.4.27/srclib/apr-util
    [root@danran src]# cd httpd-2.4.27
    [root@danran httpd-2.4.27]# ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/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
    
    同上编译httpd24操作一致,根据提示安装不同的程序开发包,eg
    [root@danran httpd-2.4.27]# yum -y install pcre-devel
    [root@danran httpd-2.4.27]# yum -y install openssl-devel
    
    [root@danran httpd-2.4.27]# make && make install 
    
    • 导入环境变量

      [root@danran httpd-2.4.27]# cd /usr/local/httpd24/bin/
      [root@danran bin]# ls
      ab checkgid envvars-std htdbm httpd rotatelogs
      apachectl dbmmanage fcgistarter htdigest httxt2dbm
      apxs envvars htcacheclean htpasswd logresolve
      [root@danran bin]# vim /etc/profile.d/httpd.sh
      export PATH=/usr/local/httpd24/bin:$PATH
      [root@danran bin]# . /etc/profile.d/httpd.sh
      [root@danran bin]# $PATH
      -bash: /usr/local/httpd24/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin: No such file or directory
      [root@danran bin]# which apachectl
      /usr/local/httpd24/bin/apachectl

      导入man帮助路径
      [root@danran httpd-2.4.27]# ls /usr/local/httpd24/man/ httpd的man帮助路径
      [root@danran ~]# vim /etc/man.config
      MANPATH /usr/local/httpd24/man/

    man1 man8

    • 启动服务

      [root@danran bin]# apachectl start
      AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using danran.com. Set the 'ServerName' directive globally to suppress this message
      [root@danran bin]# ps aux | grep http
      root 85908 0.0 0.1 97324 2324 ? Ss 13:15 0:00 /usr/local/httpd24/bin/httpd -k start
      daemon 85909 0.0 0.1 99408 1916 ? S 13:15 0:00 /usr/local/httpd24/bin/httpd -k start
      daemon 85910 0.0 0.1 99408 1916 ? S 13:15 0:00 /usr/local/httpd24/bin/httpd -k start
      daemon 85911 0.0 0.1 99408 1916 ? S 13:15 0:00 /usr/local/httpd24/bin/httpd -k start
      daemon 85912 0.0 0.1 99408 1916 ? S 13:15 0:00 /usr/local/httpd24/bin/httpd -k start
      daemon 85913 0.0 0.1 99408 1916 ? S 13:15 0:00 /usr/local/httpd24/bin/httpd -k start
      root 85915 0.0 0.0 112648 960 pts/1 R+ 13:15 0:00 grep --color=auto http

    • 编译安装的httpd的自带默认web页面保存在/usr/local/httpd24/htdocs路径下

      [root@danran htdocs]# ll /usr/local/httpd24/htdocs/index.html

    • 添加服务脚本启动服务

      Centos 7
      [root@danran htdocs]# scp 172.16.251.4:/etc/init.d/httpd /etc/init.d/httpd24 复制某台 主机的http的服务脚本到当前系统
      [root@danran htdocs]# cd /etc/init.d/
      [root@danran init.d]# vim /etc/init.d/httpd24 修改以下内容
      apachectl=/usr/local/httpd24/bin/apachectl 启动二进制文件路径
      httpd=${HTTPD-/usr/local/httpd24/bin/httpd}
      prog=httpd
      pidfile=${PIDFILE-/usr/local/httpd24/logs/httpd.pid} pid进程号文件
      lockfile=${LOCKFILE-/var/lock/subsys/httpd24} httpd的锁文件
      [root@danran init.d]# apachectl stop
      [root@danran init.d]# chkconfig --add httpd24
      [root@danran init.d]# chkconfig --list httpd24

            Note: This output shows SysV services only and does not include native
            systemd services. SysV configuration data might be overridden by native
            systemd configuration.
      
            If you want to list systemd services use 'systemctl list-unit-files'.
            To see services enabled on particular target use
            'systemctl list-dependencies [target]'.
      
            httpd24         0:off   1:off   2:off   3:off   4:off   5:off   6:off
        [root@danran init.d]# service httpd24 start \centos7使用此命令有缺失,建议还是使用apachectl start启动
      
        [root@danran bin]# apachectl start \启动httpd24服务
      
        [root@danran init.d]# ls /usr/local/httpd24/logs/httpd.pid 
            /usr/local/httpd24/logs/httpd.pid
        [root@danran init.d]# ls /usr/local/httpd24/logs/access_log 
            /usr/local/httpd24/logs/access_log
        [root@danran init.d]# ls /usr/local/httpd24/logs/error_log 
            /usr/local/httpd24/logs/error_log
      

      Centos 6
      [root@danran ~]# cp /etc/init.d/httpd /etc/init.d/httpd24
      [root@danran ~]# vim /etc/init.d/httpd24
      apachectl=/usr/local/httpd24/bin/apachectl
      httpd=${HTTPD-/usr/local/httpd24/bin/httpd}
      prog=httpd
      pidfile=${PIDFILE-/usr/local/httpd24/logs/httpd.pid}
      lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
      [root@danran httpd-2.4.27]# service httpd24 start
      Starting httpd: AH00557: httpd: apr_sockaddr_info_get() failed for danran.com
      AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
      [ OK ]
      [root@danran httpd-2.4.27]# chkconfig --add httpd24
      [root@danran httpd-2.4.27]# chkconfig --list httpd24
      httpd24 0:off 1:off 2:off 3:off 4:off 5:off 6:off

    danran
  • 相关阅读:
    js 自定义事件
    django项目mysite
    python web 框架
    Python web-Http
    numpy学习
    django 中单独执行py文件修改用户名
    python解决排列组合
    解决Database returned an invalid datetime value. Are time zone definitions for your database installed?
    Anaconda下载地址
    Django中使用geetest实现滑动验证
  • 原文地址:https://www.cnblogs.com/JevonWei/p/7287344.html
Copyright © 2011-2022 走看看