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

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

[[email protected] ~]# tar xf apr-1.5.1.tar.gz
[[email protected] ~]# tar xf apr-util-1.5.3.tar.gz 
[[email protected] apr-1.5.1]# cd apr-1.5.1
[[email protected] apr-1.5.1]# ./configure --prefix=/usr/local/apr
[[email protected] apr-1.5.1]# make && make install
[[email protected] apr-1.5.1]# cd ../apr-util-1.5.3
[[email protected] apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[[email protected] apr-util-1.5.3]# make&& make install
[[email protected] httpd-2.4.10]# yum install pcre-devel
[[email protected] httpd-2.4.10]# yum install openssl-devel

2.安装httpd

[[email protected] ~]# tar xf httpd-2.4.10.tar.gz 
[[email protected] ~]# cd httpd-2.4.10
[[email protected] 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
[[email protected] httpd-2.4.10]# make && make install

为httpd24提供启动脚本

[[email protected] 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|configtest|fullstatus)
  $apachectl [email protected]
  RETVAL=$?
  ;;
  *)
  echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
  exit 1
esac
 
exit $RETVAL

添加到启动项并启动服务

[email protected] httpd24]# chkconfig --add httpd24
[[email protected] httpd24]# chmod +x /etc/rc.d/init.d/httpd24
[[email protected] httpd24]# chkconfig httpd24 on
[[email protected] 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. 安装后配置

[[email protected] profile.d]# vim httpd24.sh
PATH=/usr/local/apache/bin:$PATH
[[email protected] etc]# vim man.config 
MANPATH /usr/local/apache/man
[[email protected] httpd24]# vim httpd.conf
PidFile "/var/run/httpd24.pid"

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

[[email protected] extra]# vim /etc/httpd24/httpd.conf 
Include /etc/httpd24/extra/httpd-vhosts.conf
[[email protected] extra]# cat httpd-vhosts.conf 
<VirtualHost 172.16.21.250:80>
    DocumentRoot "/web/172"
    ServerName www.test.com
</VirtualHost>
<Directory /web/172>
    Require all granted
</Directory>
<VirtualHost 192.168.1.123:80>
    DocumentRoot "/web/192"
    ServerName www.test.com
</VirtualHost>
<Directory /web/192>
    Require all granted
</Directory>
[[email protected] extra]mkdir -p /web/{192,172}
[[email protected] extra]echo "Access from 192" >/web192/index.html
[[email protected] extra]echo "Access from 172" >/web/172/index.html
#重启服务
    [[email protected] extra]# service httpd24 restart

#验证
[[email protected] extra]# curl 192.168.1.123
Access from 192
[[email protected] extra]# curl 172.16.21.250
Access from 172

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

[[email protected] extra]# cat httpd-vhosts.conf 
Listen 8080
<VirtualHost 172.16.21.250:80>
    DocumentRoot "/web/80"
    ServerName www.test.com
</VirtualHost>
<Directory /web/80>
    Require all granted
</Directory>
 
<VirtualHost 172.16.21.250:8080>
    DocumentRoot "/web/8080"
    ServerName www.test.com
</VirtualHost>
<Directory /web/8080>
    Require all granted
</Directory>
[[email protected] extra]# mkdir -v /web/{80,8080}
[[email protected] extra]# echo "Access from port8080" >/web/8080/index.html
[[email protected] extra]# echo "Access from port80" >/web/80/index.html
#重启服务
[[email protected] extra]# service httpd24 restart
#验证
[[email protected] extra]# curl 172.16.21.250:8080
Access from port8080
[[email protected] extra]# curl 172.16.21.250:80
Access from port80

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

#在httpd2.2版本定义基于域名的虚拟主机时,需要加入如下现象,在2.4则不再需要,直接定义即可
#NameVirtualHost IP:PORT
[[email protected] extra]# vim httpd-vhosts.conf
<VirtualHost 172.16.21.250:80>
    DocumentRoot "/web/80"
    ServerName www1.test.com
</VirtualHost>
<Directory /web/www1>
    Require all granted
</Directory>
 
<VirtualHost 172.16.21.250:80>
    DocumentRoot "/web/80"
    ServerName www2.test.com
</VirtualHost>
<Directory /web/www2>
    Require all granted
</Directory>
#由于没有DNS服务器,方便起见,在/etc/host中添加以下两行
172.16.21.250   www1.test.com
172.16.21.250   www2.test.com
#验证
[[email protected] extra]# curl www1.test.com
www1.test.com
[[email protected] extra]# curl www2.test.com
www2.test.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

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

时间: 2025-01-01 21:28:30

源码编译安装httpd2.4及虚拟主机的相关文章

源码编译安装 httpd2.4+MariaDB5.5+php5.4 全新的LAMP

操作环境: http主机,php主机,MariaDB主机,操作系统CentOS6.5 x86_64 全部安装包组:Development tools  ServerPlatform Development httpeth0 IP:172.16.32.11 MariaDBeth0 IP:172.16.32.10 phpeth0 IP:172.16.32.12 httpd2.4新特性:解释下面安装用到的几个 event不再是测试状态,而是可以直接编译进去,mpm模块可以动态装载卸载 分了多个配置文件

源码编译安装httpd-2.4.39

环境centos7.6 需要下载的源码编译安装包: 官网http://www.apache.org/index.html#projects-list httpd-2.4.39.tar.bz2(最小化安装系统需安装bzip2) apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz 基于最小化安装的centos系统,生产实践,源码编译需要安装下面组件 yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel opens

CentOS6.5下源码编译安装httpd2.4.23

1.安装环境为CentOS6.5,64位 [[email protected] app]# uname -r 2.6.32-504.30.3.el6.x86_64 [[email protected] app]# cat /etc/redhat-release  CentOS release 6.5 (Final) [[email protected] app]# 2.官网上下载源码包 wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/

httpd-2.4源码编译安装

一.httpd-2.4的新特性 1)MPM支持在运行时装载: --enable-mpms-shared=all --with-mpm={prefork|worker|event} 2)支持event mpm 3)异步读写 4)在每模块及每目录分别使用不同的日志级别 5)每请求的配置:<If>,<Elseif> 6)增强版的表达式分析器 7)毫秒级的keep alive的timeout 8)基于FQDN的虚拟主机不再需要NameVirtualHost指令: 9)支持用户使用自定义变量

源码编译安装分离式LAMP平台

前言: LAMP是指:Linux(操作系统),Apache(Web服务器),MySQL/MariaDB(数据库),PHP/Perl/Python(脚本语言),所有组成产品各自独立的开源软件,组合在一起使用,就组成了目前互联网中流行的Web框架:与Java/J2EE架构相比,LAMP具有Web资源丰富,轻量,开发快速等特点,与微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台. 工作原理: 分离式的LAMP架构,A

马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法. 为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2: 首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了. 这里我运行yum gro

详解LAMP源码编译安装

实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 LAMP简介 一.准备工作 二.编译安装 Apache 三.编译安装 MySQL 四.编译安装 PHP 测试LAMP搭建开源数据web管理程序phpMyadmin 详解LAMP源码编译安装 LAMP简介 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装L

软件包管理之源码编译安装

编译步骤: 1.#cd SOURCE_CODE 2../configure 作用: 检测编译环境 提供给用户编译配置(通过脚本选项) --help 帮助信息 --prefix=/usr/local/name 安装路径 二进制 /usr/local/name/bin /usr/local/name/libexec不允许自动执行,只能被其他程序调用执行 配置文件 /usr/local/name/conf 库文件 /usr/local/name/lib 帮助文档 /usr/local/name/sha

LAMP纯源码编译安装日志

一.LAMP构架的安装与经验技巧(源码安装好处.是便于管理,可以选定参数,可以使用新版本) 相关软件列表: # ls /soft/ | grep -E "*.gz|*.zip|*.xz|*.bz2"    apr-1.4.5.tar.gz    apr-util-1.3.12.tar.gz    autoconf-2.61.tar.gz    freetype-2.3.12.tar.gz    httpd-2.4.18.tar.bz2    jpegsrc.v6b.tar.gz