Apache + Tomcat + 连接器JK

一 安装Apache

下载apache:

https://www.apache.org/ -> http://mirrors.cnnic.cn/apache/ -> http://mirrors.cnnic.cn/apache/httpd/

httpd-2.2.31.tar.gz

#cd /usr/local/src/

#wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.gz

以源码方式安装

#yum install -y gcc
#yum install zlib zlib-devel #tar -zxvf httpd-2.2.31.tar.gz #cd httpd-2.2.31 #./configure --prefix=/usr/local/apache2 \ --enable-modules=most \ --enable-mods-shared=all \ --enable-so \ #make #make install
configure:error: in `/usr/local/src/httpd-2.2.21/srclib/apr':
configure:error: no acceptable C compiler found in $PATH
See `config.log'for more details.
执行./configure时,可能会遇到以上错误,这个主要是gcc包没有安装。对于这个问题,
yum install -y gcc

Apache 主配置文件为: /usr/local/apache2/conf/httpd.conf  

/usr/local/apache2/bin/apachectl -t
查看apache编译参数 : cat /usr/local/apache2/build/config.nice 查看apache加载的模块 : apachectl -M 测试apache配置文件是否正确 : apachectl -t 更改配置文件后,重新加载apache : apachectl graceful
Apache启动:/usr/local/apache2/bin/apachectl start|restart|stop

二:安装Tomcat

下载:http://tomcat.apache.org/download-70.cgi

  • tar.gz (pgp, md5, sha1) http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
#cd /usr/local/
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
tar -zxvf apache-tomcat-7.0.70.tar.gz
mv apache-tomcat-7.0.70 tomcat7.0.70

三:安装JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Java SE Development Kit 7u80

Linux x64146.42 MBjdk-7u80-linux-x64.tar.gz

cd /usr/local

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz

(linux通过wget直接下载jdk,避免用户验证)

tar -zxvf jdk-7u80-linux-x64.tar.gz #解压后会产生一个jdk1.7.0_80目录

/usr/local/jdk1.7.0_80/bin/java -version

四、安装JK模块

为了更灵活地使用mod_jk连接器,这里采用源码方式编译出所需的JK模块,

下载 :http://tomcat.apache.org/download-connectors.cgi JK 1.2.41 Source Release tar.gz

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/

cd /usr/local

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz

yum install libtool autoconf

tar xzvf tomcat-connectors-1.2.41-src.tar.gz

cd tomcat-connectors-1.2.41-src/native

chmod 755 buildconf.sh

./configure --with-apxs=/usr/local/apache2/bin/apxs #这里指定的是Apache安装目录中的apxs的位置

make

make install

--------------------------------------------------------

安装完调试用了两天。老是出错。所以做这个还是要细心 差一个扛/都是不行的。

修改 vim /usr/local/apache2/conf/httpd.conf 加入

Listen 192.168.1.106:80

ServerName localhost:80

<IfModule dir_module>

DirectoryIndex index.html index.jsp

</IfModule>

ServerTokens Full
ServerSignature On
LoadModule jk_module modules/mod_jk.so                  #加载mod_jk模块
JkWorkersFile /usr/local/apache2/conf/workers.properties     
JkMountFile /usr/local/apache2/conf/uriworkermap.properties   # 
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel info
JkLogstampformat "[%a %b %d %H:%M:%S %Y]"

NameVirtualHost *:80           #启用虚拟主机上面的DocumentRoot指令的配置会失效。以虚拟主机的DocumentRoot为主
<VirtualHost *:80>
    ServerAdmin webmaster@ixdba.net
    DocumentRoot /webdata/www
    ServerName 192.168.1.106
    ErrorLog logs/error_log
    CustomLog logs/access_log common
    JkMountFile conf/uriworkermap.properties 
#增加虚拟机目录的权限控制 要不然会报错 You don't have permission to access / on this server 

        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow From All
        </Directory>
</VirtualHost>


建立相关定义的文件 
# touch /usr/local/apache2/conf/workers.properties 
# touch /usr/local/apache2/conf/uriworkermap.properties 
# touch /usr/local/apache2/logs/mod_jk.log 
 编辑文件 
# cat workers.properties   #定义tomcat主机 
worker.list=tomcat1
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
 
# cat uriworkermap.properties  #定义tomcat处理的文件类型,tomcat不处理的由apache来处理。 
/*=tomcat1
!/*.jpg=tomcat1
!/*.gif=tomcat1
!/*.png=tomcat1
!/*.bmp=tomcat1
!/*.html=tomcat1
!/*.htm=tomcat1
!/*.swf=tomcat1
!/*.css=tomcat1
!/*.js=tomcat1

关闭tomcat的侦听端口 (主要是为安全考虑)

vim /usr/local/tomcat7.0.70/conf/server.xml

注意修改server.xml 不能出错,否则tomcat会启动失败。出错的话 ,可在tomcat7.0.70/logs/ 查看启动日志 tail catalina.out

<!--carbon注释 关闭tomcat的8080端口 我们走的是apache的80端口
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->
在</Host>后面增加Host,appBase和上面的虚拟主机的目录对应/webdata/www
</Host>
      <Host name="192.168.1.106" debug="0" appBase="/webdata/www" unpackWARs="true">  
<Context path="" docBase="" dubug="1"/> 
</Host>

Tomcat启动脚本 Tomcat的bin目录下 有 catalina.sh startup.sh shutdown.sh 3个脚本。

而startup.sh 和 shutdown.sh 其实都用不同的参数调用了 catalina.sh脚本。

tomcat 启动的时候会去查找JDK的安装路径,因此要配置JAVA_HOME环境变量。

三种方法:

1、 /etc/profile :系统的全局环境变量。

2、 ~/.bash_profile 用户环境变量。

3 、vim /usr/local/tomcat7.0.70/bin/catalina.sh

#环境变量 这三种方法只需设置一个地方就可以。
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.7.0_80/
JAVA_BIN=/usr/local/jdk1.7.0_80/bin
JRE_HOME=/usr/local/jdk1.7.0_80/jre
PATH=$PATH:/usr/local/jdk1.7.0_80/bin:/usr/local/jdk1.7.0_80/jre/bin
CLASSPATH=/usr/local/jdk1.7.0_80/jre/lib:/usr/local/jdk1.7.0_80/lib:/usr/local/jdk1.7.0_80/jre/lib/charsets.jar
export  JAVA_HOME  JAVA_BIN JRE_HOME  PATH  CLASSPATH

vim /usr/local/tomcat7.0.70/bin/catalina.sh

# OS specific support.  $var _must_ be set to either true or false.
JAVA_HOME=/usr/local/jdk1.7.0_80
export JAVA_HOME     #export 使它生效
cygwin=false
darwin=false
mkdir -p /webdata/www  #-p 级连创建
cp -r /usr/local/tomcat7.0.70/webapps/ROOT/* /webdata/www
cp -r /usr/local/tomcat7.0.70/webapps/docs /webdata/www
/usr/local/tomcat7.0.70/bin/startup.sh
/usr/local/apache2/bin/apachectl start

#最后这个命令,切记不要进入到apache2的bin目录下运行 apachectl start
#这样是不一样的,单独输入命令apachectl start 会运行环境变量下的命令造成运行路径跟本不一样。运行apache会出现问题最后通过命令 netstat -antp  查看是否有httpd 和两个java 进程。 

http://192.168.1.106/index.jsp 如果可以正常访问 证明JSP正常解析了。接着

在/webdata/www下建立一个test.html 内容自己写

访问 http://192.168.1.106/text.html 如果可以正常访问证明成功了