阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

源码编译安装httpd2.4及虚拟主机

114次阅读
没有评论

共计 6042 个字符,预计需要花费 16 分钟才能阅读完成。

1. 安装 apr,apr-utils,pcre-devel 和 openssl-devel

[root@wh1 ~]# tar xf apr-1.5.1.tar.gz

[root@wh1 ~]# tar xf apr-util-1.5.3.tar.gz

[root@wh1 apr-1.5.1]# cd apr-1.5.1

[root@wh1 apr-1.5.1]# ./configure –prefix=/usr/local/apr

[root@wh1 apr-1.5.1]# make && make install

[root@wh1 apr-1.5.1]# cd ../apr-util-1.5.3

[root@wh1 apr-util-1.5.3]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

[root@wh1 apr-util-1.5.3]# make&& make install

[root@wh1 httpd-2.4.10]# yum install pcre-devel

[root@wh1 httpd-2.4.10]# yum install openssl-devel

2. 安装 httpd

[root@wh1 ~]# tar xf httpd-2.4.10.tar.gz

[root@wh1 ~]# cd httpd-2.4.10

[root@wh1 httpd-2.4.10]#./configure–prefix=/usr/local/apache\>  \

>–sysconfdir=/etc/httpd24 \

> –enable-so \

> –enable-ssl \

> –enable-cgi \

> –enable-rewrite \

> –with-zlib  \

> –with-apr=/usr/local/apr \

> –with-apr-util=/usr/local/apr-util/ \

> –enable-mpms-shared=all  \

> –with-mpm=event \

> –enable-modules=most

[root@wh1 httpd-2.4.10]# make && make install

为 httpd24 提供启动脚本

[root@wh1 httpd24]# cat /etc/rc.d/init.d/httpd24

#!/bin/bash

#

# httpd24        Startup script for the Apache HTTP24 Server

#

# chkconfig: – 85 15

# description: Apache is a World Wide Web server.  It is used to serve \

#        HTML files and CGI.

# processname: httpd24

# config: /etc/httpd24/conf/httpd24.conf

# config: /etc/sysconfig/httpd24

# pidfile: /var/run/httpd24.pid

 

# Source function library.

. /etc/rc.d/init.d/functions

 

if [-f /etc/sysconfig/httpd24]; then

        . /etc/sysconfig/httpd24

fi

 

# Start httpd24 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/httpd24.worker in /etc/sysconfig/httpd24 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

httpd24=${HTTPD-/usr/local/apache/bin/httpd}

prog=httpd24

pidfile=${PIDFILE-/var/run/httpd24.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

RETVAL=0

 

start() {

        echo -n $”Starting $prog: “

        LANG=$HTTPD_LANG daemon –pidfile=${pidfile} $httpd24 $OPTIONS

        RETVAL=$?

        echo

        [$RETVAL = 0] && touch ${lockfile}

        return $RETVAL

}

 

stop() {

  echo -n $”Stopping $prog: “

  killproc -p ${pidfile} -d 10 $httpd24

  RETVAL=$?

  echo

  [$RETVAL = 0] && rm -f ${lockfile} ${pidfile}

}

reload() {

    echo -n $”Reloading $prog: “

    if ! LANG=$HTTPD_LANG $httpd24 $OPTIONS -t >&/dev/null; then

        RETVAL=$?

        echo $”not reloading due to configuration syntax error”

        failure $”not reloading $httpd24 due to configuration syntax error”

    else

        killproc -p ${pidfile} $httpd24 -HUP

        RETVAL=$?

    fi

    echo

}

 

# See how we were called.

case “$1” in

  start)

  start

  ;;

  stop)

  stop

  ;;

  status)

        status -p ${pidfile} $httpd24

  RETVAL=$?

  ;;

  restart)

  stop

  start

  ;;

  condrestart)

  if [-f ${pidfile} ] ; then

    stop

    start

  fi

  ;;

  reload)

        reload

  ;;

  graceful|help|configlinuxidc|fullstatus)

  $apachectl $@

  RETVAL=$?

  ;;

  *)

  echo $”Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configlinuxidc}”

  exit 1

esac

 

exit $RETVAL

添加到启动项并启动服务

root@wh1 httpd24]# chkconfig –add httpd24

[root@wh1 httpd24]# chmod +x /etc/rc.d/init.d/httpd24

[root@wh1 httpd24]# chkconfig httpd24 on

[root@wh1 httpd24]# service httpd24 start

Starting httpd24: AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using wh1.mageedu.com. Set the ‘ServerName’ directive globally to suppress this message

                                                          [OK]

3. 安装后配置

[root@wh1 profile.d]# vim httpd24.sh

PATH=/usr/local/apache/bin:$PATH

[root@wh1 etc]# vim man.config

MANPATH /usr/local/apache/man

[root@wh1 httpd24]# vim httpd.conf

PidFile “/var/run/httpd24.pid”

4. 搭建基于 IP 的虚拟主机

[root@wh1 extra]# vim /etc/httpd24/httpd.conf

Include /etc/httpd24/extra/httpd-vhosts.conf

[root@wh1 extra]# cat httpd-vhosts.conf

<VirtualHost 172.16.21.250:80>

    DocumentRoot “/web/172”

    ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/172>

    Require all granted

</Directory>

<VirtualHost 192.168.1.123:80>

    DocumentRoot “/web/192”

    ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/192>

    Require all granted

</Directory>

[root@wh1 extra]mkdir -p /web/{192,172}

[root@wh1 extra]echo “Access from 192” >/web192/index.html

[root@wh1 extra]echo “Access from 172” >/web/172/index.html

# 重启服务

    [root@wh1 extra]# service httpd24 restart

# 验证

[root@wh1 extra]# curl 192.168.1.123

Access from 192

[root@wh1 extra]# curl 172.16.21.250

Access from 172

5. 搭建基于端口的虚拟主机

[root@wh1 extra]# cat httpd-vhosts.conf

Listen 8080

<VirtualHost 172.16.21.250:80>

    DocumentRoot “/web/80”

    ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/80>

    Require all granted

</Directory>

 

<VirtualHost 172.16.21.250:8080>

    DocumentRoot “/web/8080”

    ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/8080>

    Require all granted

</Directory>

[root@wh1 extra]# mkdir -v /web/{80,8080}

[root@wh1 extra]# echo “Access from port8080” >/web/8080/index.html

[root@wh1 extra]# echo “Access from port80” >/web/80/index.html

# 重启服务

[root@wh1 extra]# service httpd24 restart

# 验证

[root@wh1 extra]# curl 172.16.21.250:8080

Access from port8080

[root@wh1 extra]# curl 172.16.21.250:80

Access from port80

6. 搭建基于域名的虚拟主机

# 在 httpd2.2 版本定义基于域名的虚拟主机时,需要加入如下现象,在 2.4 则不再需要,直接定义即可

#NameVirtualHost IP:PORT

[root@wh1 extra]# vim httpd-vhosts.conf

<VirtualHost 172.16.21.250:80>

    DocumentRoot “/web/80”

    ServerName www1.linuxidc.com

</VirtualHost>

<Directory /web/www1>

    Require all granted

</Directory>

 

<VirtualHost 172.16.21.250:80>

    DocumentRoot “/web/80”

    ServerName www2.linuxidc.com

</VirtualHost>

<Directory /web/www2>

    Require all granted

</Directory>

# 由于没有 DNS 服务器,方便起见,在 /etc/host 中添加以下两行

172.16.21.250  www1.linuxidc.com

172.16.21.250  www2.linuxidc.com

# 验证

[root@wh1 extra]# curl www1.linuxidc.com

www1.linuxidc.com

[root@wh1 extra]# curl www2.linuxidc.com

www2.linuxidc.com

源代码下载地址:

Apr:http://mirrors.cnnic.cn/apache//apr/apr-1.5.1.tar.gz

Apr-util:http://mirrors.cnnic.cn/apache//apr/apr-util-1.5.3.tar.gz

httpd:http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.10.tar.gz

——————————————————————————–

The End 

CentOS 6.5 编译安装 httpd-2.4.7 http://www.linuxidc.com/Linux/2014-02/97265.htm

httpd 中工作模型的比较 http://www.linuxidc.com/Linux/2014-02/97265.htm

编译安装最新版 httpd-2.4 http://www.linuxidc.com/Linux/2014-03/98761.htm

httpd2.4 基本功能的实现 … http://www.linuxidc.com/Linux/2014-03/98762.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计6042字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中