1. 程式人生 > 資料庫 >CentOS 7 配置Tomcat9+MySQL方案

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="www.damowang.cn" 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 www.damowang.cn/1.html 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 www.damowang.cn/1.jsp <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 'java'@'127.0.0.1' 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語言寫的程式碼 這個指令碼可以去連線我們的資料庫 <%@page import=%> <%@page import=%> <%@page 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表裡面的資料