所有软件的版本如下:
MySQL-Connector-Java: mysql-connector-java-5.1.44 部署Tomcat使用jsp链接Msql
Tomcat: apache-tomcat-8.5.42.tar.gz tomcat软件包,此包为二进制源码包,无需编译,可直接使用
JDK: jdk-8u212-linux-x64.tar.gz jdk环境依赖包,安装tomcat必备此包,
MySQL: mysql-5.7.19 mysql数据库软件包
安装jdk
[root@b bin]# tar -zxvf /mnt/install-soft/jdk-8u212-linux-x64.tar.gz -C /usr/local/
[root@b bin]#cd /usr/local/jdk1.8.0_212/bin
[root@b bin]#./java -version
修改环境变量,使java全局生效
[root@b bin]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_212
export PATH=$PATH:${JAVA_HOME}/bin
export CLASSPATH=.:${JAVA_HOME}/lib
在/etc/profile环境变量文件末尾添加如上java环境变量参数。(java环境路径为jdk软件包解压存放路径)
[root@b bin]# source /etc/profile
加载/etc/profile环境变量文件,使配置立即生效。
[root@b bin]# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
查看java版本信息
安装tomcat
[root@b bin]# tar -zxvf /mnt/install-soft/apache-tomcat-8.5.42.tar.gz -C /usr/local/
配置启动脚本
[root@b tomcat]# vim /etc/init.d/tomcat
#!/bin/bash
#Tomcat init script for linux
# chkconfig: 35 89 23
# discription:The Apache Tomcat Server/JSP container
JAVA_OPTS='-server -Xms64m -Xmx128m'
JAVA_HOME=/usr/local/jdk1.8.0_212
CATALINA_HOME=/usr/local/tomcat
$CATALINA_HOME/bin/catalina.sh $*
给启动脚本可执行权限
[root@b tomcat]# chmod +x /etc/init.d/tomcat
建立系统服务文件
[root@b ~]# vim /lib/systemd/system/tomcat.service
[Unit]
Description=tomcat
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/tomcat start
ExecStop=/etc/init.d/tomcat stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
给它755权限 chmod 755 /lib/systemd/system/tomcat.service
[root@b ~]# systemctl start tomcat #启动tomcat
Starting tomcat...
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
tomcat.service: control process exited, code=exited status=1
Failed to start tomcat.
Unit tomcat.service entered failed state.
tomcat.service failed.
启动报错,无法使用系统服务启动
[root@b ~]# systemctl start tomcat #启动tomcat
[root@b ~]# systemctl enable tomcat #添加到随机启动
[root@b ~]# netstat -antup | grep 8080 #查看是否启动
创建管理Manger App用户
[root@b ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
#去掉注释<!-- --> 修改为如下,
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin"password="123456"roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
角色说明
1:“manager-gui”:Allows access to the html interface(允许通过web的方式登录查看服务器信息)。
2:“manager-script”: Allows access to the plain text interface(允许以纯文本的方式访问)。
3:“manager-jmx”: Allows access to the JMX proxy interface(允许jmx的代理访问)。
4:“manager-status”: Allows access to the read-only status pages(允许以只读状态访问)。
5: admin-gui: 允许访问HTML GUI
6 : admin-script: 允许访问文本接口
官方说明http:#tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Configuring_Manager_Application_Access
tomcat8以上还要增加以下配置
[root@b ~]# vim /usr/local/tomcat/conf/Catalina/localhost/manager.xml
内容如下:
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
</Context>
[root@b ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" /> #修改这里
</Context>
重启tomcat 没有restart命令,只能先stop再start 测试访问
搭建基于域名的虚拟主机
[root@b ~]# ls /usr/local/tomcat/conf/
Catalina catalina.properties logging.properties tomcat-users.xml web.xml
catalina.policy context.xml server.xml tomcat-users.xsd
server.xml是Tomcat的主配置文件(全局),服务器设置的,例如端口设置,路径设置。
context里设置tomcat数据源,用来连接数据库。
tomcat_users主要是用户名和密码的设置。
web是默认首页等等之类的设置
[root@b ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="xwukong.com" appBase="/var/www/html">
<Context path="" docBase="/var/www/html/web1" />
</Host>
<Host name="bajie.com" appBase="/var/www/html">
<Context path="" docBase="/var/www/html/web2" />
</Host>
#在末尾的</Engine>上面添加上面这几行
appBase指定应用程序(网站)的基本路径,这里可以存放多个程序(网站),一般是相对路径,相对于tomcat的安装目录。
Context path=""为虚拟目录,如果是空,表示直接就是/,如果是如path="aa",那么访问的时候就是site:8080/aa
xuegod.cndocBase="……" 为实际目录,就是可以是绝对路径,如果是相对路径就是基于appBase
[root@b ~]# mkdir -p /var/www/html/{web1,web2}
[root@b ~]# echo '<H1>wo shi wu kong NO.1</H1>' > /var/www/html/web1/index.html
[root@b ~]# echo '<H1> wo shi zhu ba jie NO.2</H1>' > /var/www/html/web2/index.html
重启tomcat
客户机host文件:
192.168.0.102 wukong.com
192.168.0.102 bajie.com
网页测试
安装tomcat-Native
Tomcat 可以使用 apr 来提供更好的伸缩性、性能和集成到本地服务器技术。用来提高 tomcat 的性能。 tomcat native 在具体的运行平台上,提供了一种优化技术,它本身是基于 ARP(Apache Portable(轻便) Runtime)技术
我们应用了 tomcat native 技术之后,tomcat 在跟操作系统级别的交互方面可以做得更好,并且它更像apache 一样,可以更好地作为一台 web server。 tomcat 可以利用 apache 的 apr 接口,使用操作系统的部分本地操作,从而提升性能APR 提升的是静态页面处理能力
关于tomcat-native的相关介绍及下载: http:#tomcat.apache.org/download-native.cgi
先解决依赖
[root@b ]# yum install openssl-devel openssl
我们的tomcat9 在bin下已有tomcat-native
[root@b ]# tar zxf tomcat-native.tar.gz -C /usr/local/src/
[root@b ]# cd /usr/local/src/tomcat-native-1.2.14-src/native
[root@b native]# ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/java/jdk-9/ --with-ssl
[root@b native]# make ; make install
安装完:提示:需要添加库文件:
[root@xb native]# vim /etc/ld.so.conf
/usr/local/apr/lib ##添加此行
[root@b native]# ldconfig
[root@b native]# echo "ldconfig" >>/etc/rc.local
其实添加完ldconfig并无法立即引用类库变量
我们作一软链接解决:
[root@b ~]# ln -s /usr/local/apr/lib/* /usr/lib
[root@b~]# systemctl stop tomcat; systemctl start tomcat
[root@b~]#cat /usr/local/tomcat/logs/catalina.out | grep Native #看日志是否支持native, 看到APR版本号
17-Sep-2015 20:09:24.293 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.3.9.
17-Sep-2015 20:09:24.293 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
安装mysql
安装MySQL部分,根据实际情况来选择安装方式,可以选择编译安装,也可以用rpm包来安装,只要保证服务正常运行即可。
测试数据
mysql> create database tomcat; #测试数据库,为了和后面方便测试,这里创建tomcat
mysql> use tomcat
mysql> create table tt(id int,name varchar(128)); #创建测试表
mysql> insert into tt values (1,"come on boy"),(2,"come on girl");#创建测试数据
mysql> grant all on tomcat.* to tomcat@localhost identified by 'tomcat'; #授权用户
mysql> q
[root@b ~]# mysql -utomcat -ptomcat #测试tomcat可以登陆(OK)
测试jsp链接mysql
Jsp链接mysql,官方提供了工具:安装mysql-connector
安装mysql-connector
[root@b ~]# tar xvf mysql-connector-java-5.1.47.tar.gz -C /usr/local/src/
[root@b ~]# cd /usr/local/src/ mysql-connector-java-5.1.47/
[root@b ~]#cp mysql-connector-java-5.1.47-bin.jar /usr/local/tomcat/lib/
#只需要复制jar文件到tomcat的lib目录下,重启tomcat就可以生效
[root@b ~]# systemctl stop tomcat;systemctl start tomcat 测试
[root@b ~]# vim /usr/local/tomcat/webapps/ROOT/mysql.jsp #建立测试页面
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/tomcat?user=tomcat&password=tomcat&useUnicode=true&characterEncoding=utf-8";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tt";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
step:<%=rs.getString(1)%>
context:<%=rs.getString(2)%><br><br>
<%}%>
<%out.print("Congratulations!!! JSP connect MYSQL IS OK!!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
#代码复制注意核对,由于编码问题,复制到vim中可能会增加多余的%号,记得删除
浏览器访问http://192.168.0.102:8080/mysql.jsp