编译环境:

  Additional Development

  Development tools

所使用到的软件安装包下载地址:

apr-1.4.6.tar.gz -C /usr/local/src    http://pan.baidu.com/s/1sjPM1lV

apr-util-1.5.1.tar.gz -C /usr/local/src  http://pan.baidu.com/s/1i3ys009

httpd-2.4.4.tar.bz2   http://pan.baidu.com/s/1i36zUfj

jdk-7u45-linux-i586.rpm  http://pan.baidu.com/s/1i3yYxxF

apache-tomcat-7.0.42.tar.gz   http://pan.baidu.com/s/1qWz0fMW

JavaCenter_Home_GBK.zip  http://pan.baidu.com/s/1bnelUoB

一.安装httpd:

[root@localhost ~]# tar -axvf apr-1.4.6.tar.gz -C /usr/local/src //解压
[root@localhost ~]# tar -axvf apr-util-1.5.1.tar.gz -C /usr/local/src //解压
[root@localhost ~]# tar -axvf httpd-2.4.4.tar.bz2 -C /usr/local/src //解压
[root@localhost ~]# cd /usr/local/src/apr-1.4.6/   //进入/usr/local/src/apr-1.4.6/

先来安装apr,其目录下也有README,不会安装的可以看一下,根据里边的指示进行安装:

[root@localhost apr-1.4.6]# vim README
[root@localhost apr-1.4.6]# ./configure --prefix=/usr/local/apr //指定安装目录为/usr/local/apr
[root@localhost apr-1.4.6]# make && make install

接下来安装apr-util:

[root@localhost apr-1.4.6]# cd ../apr-util-1.5.1/
[root@localhost apr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
//指明安装路径以及apr-config的完全路径。
[root@localhost apr-util-1.5.1]# make && make install

接下来安装httpd:

[root@localhost httpd-2.4.4]# ./configure \
 --prefix=/usr/local/apache \
 --sysconfdir=/etc/httpd \  //配置文件目录
 --enable-so \   //启用动态模块加载
 --enable-rewrite \   //允许URL重写
 --with-apr=/usr/local/apr/bin/apr-1-config \   //指定apr安装路径
 --with-apr-util=/usr/local/apr-util/bin/apu-1-config \  //指定apr-util安装路径
 --with-prce \  //支持perl的正则表达式
 -with-z   //支持压缩

安装过程中发现一个错误:

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

少了一个pcre库文件:

此时查看我的系统中已经安装的与pcre相关的包,发现只有一个pcre-7.8-6.el6.x86_64,所以我需要再安装一个pcre-devel

[root@localhost httpd-2.4.4]# rpm -qa |grep pcre

pcre-7.8-6.el6.x86_64

[root@localhost httpd-2.4.4]# yum --disablerepo=* --enablerepo=c6-media install pcre-devel  //安装pcre-devel

完成后重新执行刚才的命令

[root@localhost httpd-2.4.4]# ./configure --prefix=/usr/local/apache  --sysconfdir=/etc/httpd --enable-so --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config  --with-apr-util=/usr/local/apr-util/bin/apu-1-config  --with-prce -with-z  //再次执行
[root@localhost httpd-2.4.4]# make && make install
[root@localhost httpd-2.4.4]# cd /usr/local/apache/  //执行完毕后来到apache目录:
[root@localhost apache]# bin/httpd -k start  //开启httpd服务

服务开启!

[root@localhost apache]# netstat -tupln |grep httpd  //查看httpd端口是否打开

接下来给httpd服务做一个控制脚本:

在/etc/init.d/下创建一个httpd文件,并且给它执行权限:

[root@localhost apache]# cd /etc/init.d/
[root@localhost init.d]# touch httpd   //创建一个httpd文件
[root@localhost init.d]# chmod a+x httpd  //给予可执行权限
[root@localhost init.d]# vim httpd   //编辑文件

脚本内容如下:

#!/bin/bash
prog=/usr/local/apache/bin/httpd
lockfile=/var/lock/subsys/httpd
start () {
        if [ -e $lockfile ];then
        echo "the httpd is started"
        else
        echo "the httpd is starting......"
        sleep 1
         $prog -k start &>/dev/null && echo "[ok]"  && touch $lockfile || echo "fail"
        fi
}
stop () {
        if [ ! -e $lockfile ];then
        echo " the httpd is stoped"
        else
        echo "the httpd is stopping......"
        sleep 1
        $prog -k stop &>/dev/null  && echo "[ok]" && rm -rf $lockfile || echo "fail"
        fi
}
status () {
        if [ -e $lockfile ];then
        echo " the httpd is started"
        else
        echo " the httpd is stoped"
        fi
}
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
status)
        status
        ;;
restart)
        stop
        start
        ;;
*)
        echo "USAGE:start|stop|status|restart"
esac
[root@localhost ~]# vim /etc/profil       
PATH=$PATH:$JAVA_HOME/bin:/usr/local/apache/bin  //将apache的bin目录写入环境变量文件

二、安装jdk,java的运行环境

[root@localhost tomcat]# rpm -ivh jdk-7u45-linux-i586.rpm
JAVA_HOME=/usr/java/jdk1.7.0_45  // 54行  将java的根目录放入系统环境变量中
PATH=$PATH:$JAVA_HOME/bin   // 55行 将jdk产生的bin文件加入系统搜索路径中
[root@localhost ~]# . /etc/profile //重新加载环境变量文件

三、安装tomcat

[root@localhost tomcat]# tar -zxvf apache-tomcat-7.0.42.tar.gz -C /usr/local/ //解压安装包
[root@localhost tomcat]# cd /usr/local/
[root@localhost local]# ln -s apache-tomcat-7.0.42 tomcat //  给这个目录做一个连接
[root@localhost local]# cd tomcat/     // 进入解压后的目录,在bin\目录下有一个catalina.sh文件,这是tomcat的引擎文件
[root@localhost bin]# ./catalina.sh  start //启动tomcat
[root@localhost bin]# netstat -tupln |grep 80 //查看端口8080和8009是否开启

在客户端机器上访问http://192.168.80.11:8080,结果如下:

apache+tomcat的配置_配置

四、测试,做一个测试页面:

[root@localhost webapps]# mkdir -pv test/{lib,classses,WEN-INF}  //在webapps目录下建立一个test目录,并在其中创建三个子目录
[root@localhost test]# vim index.jsp //并在test目录下创建index.jsp测试页,代码如下:
<%@page language="java" %>
<html>
        <head>
                <title>TomcatA</title>
        </head>
        <body>                <h2><font color="red"> TomcatA in www.tyedus.com</font></h2>
                 <% out.println("hello,word"); %>
        </body>       
</html>
[root@localhost tomcat]# bin/catalina.sh stop
[root@localhost tomcat]# bin/catalina.sh start   // 重启tomcat

然后访问http://192.168.80.11:8080/test,结果如下:

apache+tomcat的配置_apache_02

把test目录放在任意一个目录下:

[root@localhost ~]# mkdir -pv /www/webapps //在根目录下创建一个www目录并在此目录下创建一个webapps目录
[root@localhost ~]# mv /usr/local/tomcat/webapps/test/ /www/webapps/  //把test目录移动到刚建立好的目录中
[root@localhost tomcat]# vim conf/server.xml //编辑tomcat目录下conf目录下有一个server.xml文件
 <Context path="/test" docBase="/www/webapps/test" reloadable="auto"/> //125行指明test的目录,并实现自动重新加载,当访问系统默认主机localhost主机下的test目录时,实际上访问的是/www/webapps/test

然后再次访问http://192.168.80.11:8080/test,结果如下:

apache+tomcat的配置_配置_03

测试成功!

五、安装javacenter:

首先要安装mysql

[root@localhost ~]# yum --disablerepo=* --enablerepo=c6-media install mysql //使用yum安装mysql
[root@localhost ~]# mysqladmin -u root -p password '123' //为mysql创建一个系统账户root密码为123
[root@localhost ~]# service mysqld start //启动mysql服务
[root@localhost ~]# mysql -u root -p //以管理员身份登陆
mysql> create database jcenter; //创建一个名为jcenter的数据库
[root@localhost tomcat]# unzip JavaCenter_Home_GBK.zip //解压安装包
[root@localhost tomcat]# cd JavaCenter_Home_2.0_GBK/ //解压完成后进入解压好的目录
[root@localhost JavaCenter_Home_2.0_GBK]# mv upload /usr/local/tomcat/webapps/jcenter // 把该目录下的upload目录放入tomcat的站点主目录下并命名为jcenter

然后访问http://192.168.80.11:8080/jcenter/install/开始安装javacenter:

apache+tomcat的配置_apache_04

填入相关的数据库数据:

apache+tomcat的配置_配置_05

创建一个管理员账户:

apache+tomcat的配置_apache_06

创建完成:

apache+tomcat的配置_配置_07

可以进入管理后台:

apache+tomcat的配置_配置_08

也可以进入空间主页:

apache+tomcat的配置_tomcat _09

当直接访问http://192.168.80.11:8080时,可以看到如下界面,

在它的页面上有一些管理选项:

apache+tomcat的配置_tomcat _10

当点击server status时会提示输入账号:

apache+tomcat的配置_apache_11

因为我并没有建立账号所以点击取消,然后出现如下界面提示:

apache+tomcat的配置_tomcat _12

根据上边的提示来建立账号:

[root@localhost tomcat]# vim conf/tomcat-users.xml  //根据提示来编辑conf/目录下tomcat-users.xml文件
 <role rolename="manager_gui"/> //29行 创建一个组manager-gui
 <user username="tomcat" password="tomcat" roles="manager-gui"/ //30行,创建一个账户tomcat,密码为tomcat,并加入刚创建的组

然后重启tomcat

然后重新访问,输入账号和密码,进入服务状态界面:

apache+tomcat的配置_tomcat _13

点击Manager App,可以使用刚才创建的账户进入;

点击host manager,也需要创建账号,过程和上边那个类似。

六、apache和tomcat的连接器:

在这里把tomcat看成服务器,把apache看成客户端,其中服务器端的连接器有

http 8080端口 以超文本方式传输 效率比较高

ajp 8009端口 以二进制传输还有一个8005端口为 管理端口

客户端需要用模块来连接服务器:

mod_jk 这是apache默认不自带的,需要自己下载

mod_proxy 这是apache自带的模块,它有几个比较重要的子模块

 mod_proxy_httpd  连接8080端口 实现连接http客户端的模块

 mod_proxy_ajp      8009          连接tomcat的模块

 mod_proxy_blancer 当有多个tomcat服务器时实现负载均衡的模块

下边来通过http连接器和ajp连接器来连接apache和tomcat:

使用http连接器来实现使用虚拟主机www.tyedus.com访问站点:

[root@localhost ~]# vim /etc/httpd/httpd.conf   //编辑apache的主配置文件:
Include /etc/httpd/extra/httpd-vhosts.conf //460行 启用此行,把前边的# 去掉
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so  //113-121行 全部去掉#
[root@localhost ~]# vim /etc/httpd/extra/httpd-vhosts.conf  //编辑httpd-vhosts的配置文件
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    ServerName www.tyedus.com
    proxyRequests  off  //关闭正想代理 【启用反响,一定要关闭正想】
    ProxyPreserveHost on
    ProxyPass   / http://127.0.0.1:8080/
    ProxyPassreverse    / http://127.0.0.1:8080/
</VirtualHost>   //给此文件原有的内容全部注释掉,然后加上以上内容

[root@localhost ~]# service httpd start  //启动apache服务

在tomcat上创建虚拟主机:

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml

添加以下内容

<Host name="www.tyedus.com"  appBase="/usr/local/tomcat/webapps/jcenter"
            unpackWARs="true" autoDeploy="true">
        <Context path="/" docBase="/usr/local/tomcat/webapps/jcenter" reloadable="auto"/>
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="www.tyedus.com_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

然后重启tomcat。

在客户机C:\Windows\System32\drivers\etc目录下的hosts文件中做一个dns指向,添加一句即可

192.168.80.11 www.tyedus.com

此时在客户机上访问www.tyedus.com时会出现如下界面:

apache+tomcat的配置_apache_14

而直接访问http://192.168.80.11时会出现如下界面:

apache+tomcat的配置_tomcat _15


使用ajp连接器:

[root@localhost ~]# vim /etc/httpd/extra/httpd-vhosts.conf  //编辑httpd-vhosts的配置文件,将刚才编辑过的部分重新编辑如下
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
   # DocumentRoot "/usr/local/apache/docs/dummy-host2.example.com"
    ServerName www.tyedus.com
    proxyRequests  off
    ProxyPreserveHost on
    ProxyPass   / ajp://127.0.0.1:8009/
    ProxyPassreverse    / ajp://127.0.0.1:8009/
</VirtualHost>
完成之后测试成功!