VMware虚拟机CentOS6.5安装Apache配置虚拟主机

发布时间:2017-03-22 编辑:小张个人博客 查看次数:3504

Apache简介:

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。

解决依赖关系

httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包

编译安装apr

wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz  #apr是apache的可移植运行库
tar zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr

make && make install

编译安装apr-util

  wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.gz 
  tar zxvf apr-util-1.5.4.tar.gz
  cd apr-util-1.5.4
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

   make && make install

编译安装PCER

wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz
./configure
 
make && make install

编译安装httpd

 wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.32.tar.gz
 tar zf httpd-2.2.32.tar.gz
 cd httpd-2-2.32
 ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --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=event
 
 make && make install

设置其Pid文件的路径

[[email protected] apache]# vim /etc/httpd/httpd.conf
#添加此内容:PidFile "/var/run/httpd.pid"

启动httpd

[[email protected] apache]# bin/apachectl start

查看启用端口

netstat -tnlp  

#tcp        0      0 :::80          :::*        LISTEN      18193/httpd

构建MPM为静态模块:

在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。

构建 MPM 为动态模块:

在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。

提供SysV服务脚本/etc/init.d/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 [email protected]
RETVAL=$?
;;
  *)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac

exit $RETVAL

为此脚本赋予执行权限:

chmod +x /etc/rc.d/init.d/httpd

加入服务列表和设置开机启动:

chkconfig --add httpd

#开机启动
chkconfig --level 35 httpd on

为可执行程序添加PATH路径(vim /etc/profile.d/httpd.sh)

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

启用httpd的相关模块

在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

设置hosts文件:(vim /etc/hosts)

127.0.0.1  web.a.com
127.0.0.1  web.b.com

修改httpd.conf:( vim /etc/httpd/httpd.conf)

DocumentRoot "/usr/local/apache/htdocs" #注释掉

找到这一项 去掉'#'
 #Include /etc/httpd/extra/httpd-vhosts.conf

apache虚拟主机配置:(vim /etc/httpd/extra/httpd-vhosts.conf)

<VirtualHost *:80>
DocumentRoot "/usr/local/www"  #网站目录
ServerName web.b.com  #域名
#DirectoryIndex index.html index.htm index.php   #这里配置欢迎首页面

ProxyRequests Off  #关闭正向代理功能
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/$1
  <Directory "/usr/local/www" >
    Options Indexes
    AllowOverride None  #不允许别人修改我们的页面
    Order deny,allow    #设置访问权限
    #Allow from all
    Require all granted
  </Directory>
</VirtualHost>

重启httpd: 

service httpd restart

以上所述就是基于VMware虚拟机CentOS6.5安装Apache与配置Apache虚拟主机,希望对大家有所帮助!


出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号