• Linux下Apache的安装与配置


    本文安装的httpd版本为httpd 2.4.4
    安装之前确保 Development Libraries与Development tools安装上。安装方法参考:http://www.linuxidc.com/Linux/2016-04/130080.htm 与 http://www.linuxidc.com/Linux/2016-04/130081.htm

    一、编译安装
    1、解决依赖关系

    安装httpd 2.4.4时首先需要解决依赖关系,httpd 2.4.4需要较新版本的apr和apr-util。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。本文选择第一种方法来进行升级。在这里我们下载 apr-1.4.6.tar.bz2与apr-util-1.5.2.tar.bz2版本。为了以后不必要的麻烦,在这里一定要保证系统时间正确,不正确的(data自行修改)。
    apr和apr-util的下载路径为:http://archive.apache.org/dist/apr/ 
    (1)首先根据惯例剪切apr与apr-util到/usr/local/src下,然后进行解压操作
    mv  apr-1.4.6.tar.bz2  /usr/local/src
    mv  apr-util-1.5.2.tar.bz2  /usr/local/src
    tar -xjvf apr-1.4.6.tar.bz2
    tar -xjvf apr-util-1.5.2.tar.bz2
    (2)编译安装apr
    cd apr-1.4.6
    ./configure --prefix=/usr/local/apr      #安装在/usr/local/下 命名为apr
    make
    make install
    (3)编译安装apr-util
    cd apr-util-1.5.2
     ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make
    make install
    (4) httpd-2.4.4编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。
    yum -y install pcre-devel
    到此为止基本上解决了依赖关系。
    2、编译安装httpd-2.4.4
    下载httpd-2.4.4.tar.bz2下载地址为https://archive.apache.org/dist/httpd/
    (1)首先根据惯例剪切httpd-2.4.4.tar.bz2到/usr/local/src下,然后进行解压操作
    mv httpd-2.4.4.tar.bz2  /usr/local/src
    tar -xjvf  httpd-2.4.4.tar.bz2
    (2)编译安装httpd
    cd httpd-2.4.4
    ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
    解释:
    --enable-so:支持动态共享模块,如果支持php将不能与apache一起工作。必须要有
    --enable-ssl:启用ssl功能,如果不启用将无法使用https
    --enable-mpms-shared=all:prefork、worker、event
    --with-mpm=event:event为默认
     --enable-rewrite:支持URL重写
    --enable-cgi :支持cgi
    --enable-cgid:httpd使用event或者worker得启用被线程方式访问
    --enable-modules=most :启用大多数模块
    --enable-mods-shared=most:启用大多数共享模块
    (3)setenforce 0 关掉selinux。(临时关闭)
    永久关闭 vim /etc/selinux/config

    二、后续操作
    1、启动httpd
    两种方法:第一种、/usr/local/apache/bin/apachectl start
    第二种方法:先修改http.pid文件位置打开配置文件增加一行
    vim /etc/httpd/httpd.conf    增加PidFile “/var/run/httpd.pid”

    为了启动httpd更加方便,
    #!/bin/bash
    #
    # httpd        Startup script for the Apache HTTP Server
    #
    # chkconfig: - 85 15
    # description: Apache is a World Wide Web server.  It is used to serve
    #      HTML files and CGI.
    # processname: httpd
    # config: /etc/httpd/conf/httpd.conf
    # config: /etc/sysconfig/httpd
    # pidfile: /var/run/httpd.pid


    # Source function library.
    . /etc/rc.d/init.d/functions


    if [ -f /etc/sysconfig/httpd ]; then
            . /etc/sysconfig/httpd
    fi


    # Start httpd in the C locale by default.
    HTTPD_LANG=${HTTPD_LANG-"C"}


    # This will prevent initlog from swallowing up a pass-phrase prompt if
    # mod_ssl needs a pass-phrase from the user.
    INITLOG_ARGS=""


    # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
    # with the thread-based "worker" MPM; BE WARNED that some modules may not
    # work correctly with a thread-based MPM; notably PHP will refuse to start.


    # Path to the apachectl script, server binary, and short-form for messages.
    apachectl=/usr/local/apache/bin/apachectl
    httpd=${HTTPD-/usr/local/apache/bin/httpd}
    prog=httpd
    pidfile=${PIDFILE-/var/run/httpd.pid}
    lockfile=${LOCKFILE-/var/lock/subsys/httpd}
    RETVAL=0


    start() {
            echo -n $"Starting $prog: "
            LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
            RETVAL=$?
            echo
            [ $RETVAL = 0 ] && touch ${lockfile}
            return $RETVAL
    }


    stop() {
    echo -n $"Stopping $prog: "
    killproc -p ${pidfile} -d 10 $httpd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
    }
    reload() {
        echo -n $"Reloading $prog: "
        if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
            RETVAL=$?
            echo $"not reloading due to configuration syntax error"
            failure $"not reloading $httpd due to configuration syntax error"
        else
            killproc -p ${pidfile} $httpd -HUP
            RETVAL=$?
        fi
        echo
    }


    # See how we were called.
    case "$1" in
      start)
    start
    ;;
      stop)
    stop
    ;;
      status)
            status -p ${pidfile} $httpd
    RETVAL=$?
    ;;
      restart)
    stop
    start
    ;;
      condrestart)
    if [ -f ${pidfile} ] ; then
    stop
    start
    fi
    ;;
      reload)
            reload
    ;;
      graceful|help|configtest|fullstatus)
    $apachectl $@
    RETVAL=$?
    ;;
      *)
    echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
    exit 1
    esac


    exit $RETVAL
    将以上代码加入到vim /etc/init.d/httpd中
    而后为此脚本赋予执行权限:
     chmod +x /etc/rc.d/init.d/httpd
    加入服务列表:
     chkconfig --add httpd
    给3,5启动
    chkconfig --level  3,5 httpd on
    最后加路径
    将 export PATH=$PATH:/usr/local/apache/bin
    vim /etc/profile.d/httpd.sh完成后重新登录就可以了。推荐使用第二种方法

    三、验证

    安装成功!

    Ubuntu Server 14.04 安装Web服务器(Linux+Apache+MySQL+PHP)  http://www.linuxidc.com/Linux/2015-06/119061.htm

    Linux下安装配置PHP环境(Apache2)  http://www.linuxidc.com/Linux/2015-05/118062.htm

    Ubuntu 13.04 安装 LAMPVsftpdWebminphpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

    CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

    RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

    Apache 的详细介绍请点这里
    Apache 的下载地址请点这里

    本文永久更新链接地址http://www.linuxidc.com/Linux/2016-04/130079.htm

  • 相关阅读:
    mysql中Can't connect to MySQL server on 'localhost' (10061)
    Win7系统中提示:本地无法启动MySQL服务,报的错误:1067,进程意外终止的解决方法。
    Class.forName()用法详解
    ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
    Struts2的模板和主题theme及自定义theme的使用
    sql中 in 、not in 、exists、not exists 用法和差别
    JavaScript的replace方法与正则表达式结合应用讲解
    Caused by: java.lang.NoClassDefFoundError at com.jc.zm.ZmAlarmAction.analyDo(ZmAlarmAction.java:198)
    打开jsp页面时,显示空白页。
    chown命令详情
  • 原文地址:https://www.cnblogs.com/ylcms/p/7284324.html
Copyright © 2020-2023  润新知