(二) 应用部署


 1. Tomcat的目录结构
 

  [root@localhost tomcat]# ls  
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

bin: 脚本及启动时用到的类
conf: 配置文件
lib: 类库
logs:日志文件
temp:临时文件目录
webapps:应用程序默认部署目录
work:工作目录
   
tomcat配置文件:

[root@localhost tomcat]# ls conf/  
    catalina.properties  logging.properties  tomcat-users.xml
catalina.policy  context.xml          server.xml          web.xml

catalina.properties   #java属性的定义文件,设定类加载器路径等,以及一些JVM性能相关的调优参数
logging.properties    #tomcat日志配置文件
tomcat-users.xml: tomcat  #用户认证的账号和密码配置文件
catalina.policy  # 当使用-security选项启动tomcat实例时会读取此配置文件,以实现其安全运行策略
context.xml  #每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,用于定义会话管理器,JDBC等,conf/context.xml是为个webapp提供默认配置
server.xml  #用于定义tomcat体系结构,端口,集群,web应用,访问日志等功能
web.xml  #每个为webapp”部署“之后才能被访问,此文件则用于为所有的webapp提供默认部署的相关配置

了解了各目录和配置文件后,手动添加一个应用程序来测试一下:

1.创建webapp特有的目录 结构
2.提供webapp各文件 
3.创建jsp默认主页
 

[root@localhost webapps]# pwd
/usr/local/tomcat/webapps
[root@localhost webapps]# mkdir -pv myapp/{lib,classes,WEB-INF,META-INF}#创建文件
mkdir: created directory `myapp'#存放webapp的主页文件
mkdir: created directory `myapp/lib'#此webapp私有类,被打包为jar格式类
mkdir: created directory `myapp/classes'#此webapp的私有类
mkdir: created directory `myapp/WEB-INF'#当前webapp私有资源目录,存放web.xml
mkdir: created directory `myapp/META-INF'#同上,但是存放自用的context.xml


[root@localhost webapps]# vim myapp/index.jsp  #编辑jsp主页文件内容:
<html>
        <body>
                <center>
                <h1>Hello,Word!</h1>
                <h2>This is tomcat test page</h2>
                <h3><%=new java.util.Date() %></h3>
                </center>

        </body>
</html>

部署完成后,默认catalina引擎会自动部署,不需要手动重启,直接在浏览器输入测试:

 wKiom1Y4YlPwPDoDAAD5bTO4mxQ799.jpg可以看到Hello,Word!,  这样一个简单的jsp网页就完成了        


  2.部署mysql数据库:


    部署应用程序必须要有数据库,下边即源码编译安装mysql:

    下载mysql源码包和cmake包:
     mysql-5.6.13.tar.gz    cmake-2.8.12.2-4.el6.x86_64

首先安装程序开发包:

[root@localhost ~]# yum groupinstall "Development tools" "Server Platform Development"
[root@localhost ~] groupadd mysql  #创建mysql组
[root@localhost ~] useradd -r -g mysql mysql #创建mysql系统用户
[root@localhost ~] tar –zxvf mysql-5.6.13.tar.gz #解压包
[root@localhost ~] cd mysql-5.6.13.tar.gz
[root@localhost mysql-5.6.13.tar.gz] cmake . --DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data \  #数据存放目录
-DSYSCONFDIR=/etc \      #配置文件
-DWITH_MYISAM_STORAGE_ENGINE=1 \    #myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \   #innobase存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \    #memory内存引擎
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \  #sock文件路径
-DMYSQL_TCP_PORT=3306 \         #指定端口
-DENABLED_LOCAL_INFILE=1 \     #允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 \  #分区引擎
-DEXTRA_CHARSETS=all \      #支持所有字符集
-DDEFAULT_CHARSET=utf8 \      #指定默认字符为utf8
-DDEFAULT_COLLATION=utf8_general_ci   #校验字符
[root@localhost ~] chown –R mysql.mysql /usr/local/mysql 更改目录所有者
[root@localhost mysql]# cd scripts/
 [root@localhost scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/   #初始化数据库
[root@localhost mysql]# cd support-files/  #注册服务
[root@localhost support-files]# cp mysql.server /etc/rc.d/init.d/mysql
[root@localhost support-files]# cp my-default.cnf /etc/my.cnf #设置默认配置文件
root@localhost support-files]# chkconfig --add mysql 
[root@localhost support-files]# chkconfig mysql on  #开机启动
[root@localhost support-files]# vim /etc/my.cnf #修改编码文件,加入
[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8

[mysql]
default-character-set=utf8

并注释掉最后一行:
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
保存退出

[root@localhost support-files]# vim /etc/profile.d/mysql.sh  #加入环境变量,内容如下:
eport MYSQL_HOME=/usr/local/mysql
eport PATH=$MYSQL_HOME/bin:$PATH


保存退出

[root@localhost support-files]# . /etc/profile.d/mysql.sh  #重新加载文件
[root@localhost ~]# mysql –uroot  #以root身份登陆,默认没有密码,回车设置
mysql> set password = password('123456'); 设置密码
mysql> grant all privileges on *.* 'root'@'%' identified by '123456' with grant option;#授权任意地址通过root都可以登陆
mysql> exit #退出数据库

注: 数据库规则使用大写,这里为了方便使用小写

[root@localhost ~]# service mysql start  #启动服务
Starting MySQL SUCCESS!
[root@localhost ~]# ss –tnl  #3306端口已监听,服务启动成功
State   Recv-Q Send-Q     Local Address:Port        Peer Address:Port
LISTEN    0   80            :::3306                         :::*

数据库部署完成。


为了能让tomcat与mysql交互,需要使用需要一个jar包mysql-connector-java-5.1.13-bin.jar,将其下载下来放到tomcat 目录 lib 下面就可以了

[root@localhost ~]# ls
anaconda-ks.cfg              install.log.syslog      mysql-5.6.13.tar.gz
apache-tomcat-7.0.65.tar.gz  jdk-7u79-linux-x64.rpm  mysql-connector-java-5.1.13-bin.jar
install.log                  mysql-5.6.13
[root@localhost ~]# cp mysql-connector-java-5.1.13-bin.jar /usr/local/tomcat/lib/

这样就可以来测试tomcat是否能与mysql交互了,前提需要写一个连接页面,如下:

[root@localhost ~]# vim /usr/local/tomcat/webapps/myapp/test.mysql.jsp

   <%@ page language="java" %>
   <%@ page import="com.mysql.jdbc.Driver" %>
   <%@ page import="java.sql.*" %>
<%
String driverName="com.mysql.jdbc.Driver";
String userName="root";
String userPasswd="hong123";
String dbName="test";
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
try
{
        Connection connection=DriverManager.getConnection(url);
        out.println(" Connection Mysql is OK !");
        connection.close();
}
catch( Exception e )
{
        out.println( "connent mysql error:" + e );
}
%>
保存退出以后要重启tomcat。

[root@localhost ~]# catalina.sh stop
[root@localhost ~]# catalina.sh start

到浏览器测试是否有结果:

wKioL1Y4ZDqDMoMYAAC22TgfiSA074.jpg

 可以看到,说明tomcat与数据库交互没有问题


    3. 发布web网站


    首先上传web网站定义好的文件夹(开发干的事儿) 到服务器上

[root@localhost ~]# unzip  shopxx-a5-Beta.zip  #上传上来的web网站,解压缩
[root@localhost ~]# mv shopxx-v3.0-Beta/ /usr/local/tomcat/webapps/#移动至webapps下
[root@localhost webapps]# ln -s shopxx-v3.0-Beta/ shopxx #创建软链接
[root@localhost webapps]# ls shopxx/   #可以看到整合的文件
admin          favicon.ico  install       META-INF   robots.txt  upload
changelog.txt  index.jsp    license.html  resources  shopxx.txt  WEB-INF
[root@localhost tomcat]# vim conf/server.xml #修改配置文件,添加如下项:
找到%tomcathome%/conf/server.xml文件,找到<host>标签加入:
<Context path="/shop" docBase="shopxx" debug="0" reloadable="true"   crossContext="true"></Context>

注: path:虚拟路径   docBase: web物理存放路径 

然后重新启动tomcat服务:

[root@localhost tomcat]# catalina.sh stop  
[root@localhost tomcat]# catalina.sh start

然后在浏览器输入http://IP地址:端口/虚拟目录/install,即可执行:

如图:

wKioL1Y4ZMOAys4zAAXrloiiGqQ288.jpg

 

然后下一步开始部署,选择下一步:

 wKioL1Y4ZWGj_-TUAAOVjH7_0iM175.jpg这里看到环境监测数据库没有找到,忽略即可,直接下一步:


    注: 默认server.tml 里字符集没有指定,这里有时会检测不到,到server.tml里添加字符集:

<Connector port="8080" protocol="HTTP/1.1"
               Connectio,nTimeout="20000"
               redirectPort="8443"
               URIEncoding="utf-8" />  #添加后就可以检测到了。。


下一步:

 wKioL1Y4ZdOScM_OAALB8mOC4Og005.jpg

选择数据库,数据库用户名密码,名称为默认即可,单击下一步安装即可:

 wKioL1Y4ZhqgVghBAAMn1b21j08743.jpg

稍等一会儿这样web就安装完成。。。
点击完成安装后。提示我们重启web服务
这里我们需要把shopxx文件里的install先cp到其他地方:

[root@localhost shopxx]# ls   #看到已经生成了index.html文件
admin    changelog.txt  index.html  license.html  product    robots.txt  sitemap  WEB-INF
article  favicon.ico    install     META-INF      resources  shopxx.txt  upload
[root@localhost shopxx]# mv install/ back 
[root@localhost shopxx]# catalina.sh stop
[root@localhost shopxx]# catalina.sh start

重启后浏览器访问
http://192.168.0.100:8080/shop/index.html  即可

这样就部署完成。。