CentOS 7 配置Tomcat9+MySQL方案
配置tomcat
首先安装tomcat
安装tomcat分为安装tomcat和安装jdk两个步骤
jdk( java development kit ) 是sun microsystems针对java开发的产品 . 自从java推出以来 , jdk已经成为使用最广泛的java sdk . jdk是整个java的核心 , 他包括了java运行环境、java工具和java基础的类库 . 所以要想运行java程序必须要有jdk的支持 , 而安装tomcat的前提也是安装好jdk
安装jdk
# 上传完jdk的包之后 , 把它放到/usr/local/目录下 , 然后解压 [root@damowang ~]# tar xf jdk-10.0.2_linux-x64_bin.tar.gz -c /usr/local/ [root@damowang ~]# cd /usr/local/ [root@damowang local]# mv jdk-10.0.2/ jdk10 # 设置环境变量 [root@damowang local]# vim /etc/profile java_home=/usr/local/jdk10/ java_bin=/usr/local/jdk10/bin jre_home=/usr/local/jdk10/jre path=$path:/usr/local/jdk10/bin:/usr/local/jdk10/jre/bin classpath=/usr/local/jdk10/lib:/usr/local/jdk10/jre/lib/charsets/jar [root@damowang local]# source /etc/profile # 使配置文件生效 [root@damowang local]# java -version java version "10.0.2" 2018-07-17 java(tm) se runtime environment 18.3 (build 10.0.2+13) java hotspot(tm) 64-bit server vm 18.3 (build 10.0.2+13, mixed mode) # 如果显示的不是java version 而是 openjdk version 那么做如下操作 [root@damowang local]# mv `which java`{,.bak} [root@damowang local]# source /etc/profile # 直接使用openjdk也可以
安装tomcat
# 因为是二进制包 , 所以免去了编译的过程 [root@damowang ~]# tar xf apache-tomcat-9.0.10.tar.gz [root@damowang ~]# mv apache-tomcat-9.0.10/ /usr/local/tomcat [root@damowang ~]# cd /usr/local/tomcat [root@damowang tomcat]# bin/startup.sh # 启动tomcat
使用netstat命令查看是否启动成功
# 正常会有三个端口 8005、8009和8080 , 其中8080为提供web服务的端口 , 8005为管理端口 , 8009为第三方服务调用的端口 , 比如httpd和tomcat结合时会用到 [root@damowang tomcat]# netstat -lntp|grep java tcp6 0 0 127.0.0.1:8005 :::* listen 3430/java tcp6 0 0 :::8009 :::* listen 3430/java tcp6 0 0 :::8080 :::* listen 3430/java
配置tomcat
tomcat的安装过程非常简单 , tomcat的配置其实并不多
配置tomcat服务的访问端口
tomcat默认启动的端口是8080 , 想要修改则需要修改安装目录下conf/server.xml
[root@damowang tomcat]# vim conf/server.xml # 找到 <connector port="8080" protocol="http/1.1" 的行 , 比如修改为80 <connector port="80" protocol="http/1.1 保存退出 # 重启tomcat服务 [root@damowang tomcat]# bin/shutdown.sh using catalina_base: /usr/local/tomcat using catalina_home: /usr/local/tomcat using catalina_tmpdir: /usr/local/tomcat/temp using jre_home: /usr/local/jdk10 using classpath: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar note: picked up jdk_java_options: --add-opens=java.base/java.lang=all-unnamed --add-opens=java.base/java.io=all-unnamed --add-opens=java.rmi/sun.rmi.transport=all-unnamed [root@damowang tomcat]# bin/startup.sh using catalina_base: /usr/local/tomcat using catalina_home: /usr/local/tomcat using catalina_tmpdir: /usr/local/tomcat/temp using jre_home: /usr/local/jdk10 using classpath: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar tomcat started.
tomcat的虚拟主机
[root@damowang tomcat]# vim conf/server.xml # 增加虚拟主机 , 并定义域名, 在</host>下一行添加新的<host> <host name="" appbase="/data/tomcatweb/" unpackwars="false" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> <context path="" docbase="/data/tomcatweb/" debug="0" reloadable="true" crosscontext="true"/> <valve classname="org.apache.catalina.valves.accesslogvalve" directory="logs" prefix="damowang.cn_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </host> # 保存退出 [root@damowang tomcat]# mkdir -p /data/tomcatweb [root@damowang tomcat]# echo "damowang" > /data/tomcatweb/1.html # 修改完配置文件之后重启服务 [root@damowang tomcat]# bin/shutdown.sh [root@damowang tomcat]# bin/startup.sh # 用curl访问以下刚才创建的1.html [root@damowang tomcat]# curl -x127.0.0.1:8080 damowang
测试tomcat解析jsp
# 创建一个jsp的测试页面 [root@damowang tomcat]# vim /data/tomcatweb/1.jsp <html><body><center> now time is: <%=new java.util.date()%> </center></body></html> # 查看运行结果 [root@damowang tomcat]# curl -x127.0.0.1:8080 <html><body><center> now time is: fri jul 27 18:40:46 cst 2018 </center></body></html> # 可以看到中间那段代码被解析成当前系统时间了 , 也可以在物理机上绑定hosts , 用浏览器来测试
tomcat连接mysql
tomcat连接mysql是通过jdbc驱动实现的
所以需要准备一个包
mysql-connector-java 可以去官网下载
首先配置mysql , 创建测试用的库、表以及用户
[root@damowang ~]# mysql -uroot -p475541270 mysql> create database java_test; mysql> use java_test mysql> grant all on java_test.* to identified by 'damowang'; mysql> create table damowang (`id` int(4), `name` char(40)); mysql> insert into damowang values (1,'abc'); mysql> insert into damowang values (2,'aaa'); mysql> insert into damowang values (3,'ccc'); # 退出mysql 去验证java用户有没有问题 [root@damowang ~]# mysql -ujava -pdamowang -h127.0.0.1 mysql: [warning] using a password on the command line interface can be insecure. welcome to the mysql monitor. commands end with ; or \g. your mysql connection id is 4 server version: 5.7.21 source distribution copyright (c) 2000, 2018, oracle and/or its affiliates. all rights reserved. oracle is a registered trademark of oracle corporation and/or its affiliates. other names may be trademarks of their respective owners. type 'help;' or '\h' for help. type '\c' to clear the current input statement. mysql>
mysql配置完后接着配置tomcat相关的配置文件
[root@damowang ~]# vim /usr/local/tomcat/conf/context.xml # 在</context> 上面添加以下内容 <resource name="jdbc/mytest" # 可以随便定义,要记住名字,之后会用到 auth="container" type="javax.sql.datasource" maxactive="100" maxidle="30" maxwait="10000" username="java" password="damowang" # 数据库的用户和密码 driverclassname="com.mysql.jdbc.driver" url="jdbc:mysql://127.0.0.1:3306/java_test"> # 数据库的ip、端口以及库名 </resource> # 编辑完之后还需要改另一个配置文件 [root@damowang ~]# vim /usr/local/tomcat/webapps/root/web-inf/web.xml # 在</web-app>上面添加 <resource-ref> <description>db connection</description> <res-ref-name>jdbc/mytest</res-ref-name> # 和之前定义的resource name保持一致 <res-auth>container</res-auth> </resource-ref>
现在要用到刚才准备好的软件包了
[root@damowang ~]# tar xf mysql-connector-java-8.0.12.tar.gz -c /usr/src/ [root@damowang ~]# mv /usr/src/mysql-connector-java-8.0.12/mysql-connector-java-8.0.12.jar /usr/local/tomcat/lib/
测试
[root@damowang ~]# vim /usr/local/tomcat/webapps/root/t.jsp # java语言写的代码 这个脚本可以去连接我们的数据库 < import=%> < import=%> < import=%> <% context ctx = new initialcontext(); datasource ds = (datasource) ctx .lookup(); connection conn = ds.getconnection(); statement state = conn.createstatement(); string sql = ; resultset rs = state.executequery(sql); (rs.next()) { out.println(rs.getstring() +); out.println(rs.getstring() +); } rs.close(); state.close(); conn.close(); %>
# 重启tomcat
[root@damowang ~]# /usr/local/tomcat/bin/shutdown.sh
[root@damowang ~]# /usr/local/tomcat/bin/startup.sh
连接数据库成功 , 并且显示出了java_test库里的damowang表里面的数据