JavaWeb專案的雲伺服器部署
本次是把已經在本地跑通的Javaweb專案部署到雲伺服器上,踩了很多坑,磨磨唧唧很長時間。我使用的伺服器是阿里雲的 centos7.8版本。本篇文章主要內容有:
- 雲伺服器的控制檯配置
- 伺服器上JDK的安裝和配置
- 資料庫MariaDB的安裝和遠端連線
- tomcat的安裝和啟動
- JDBC連線
- 本地javaweb部署到雲伺服器
都為親測可試,歡迎補充。
一、雲伺服器配置
雲伺服器啟動後並不能達到我們要的效果,首先要設定安全組,允許外網訪問的埠範圍。
開啟的埠有:
- 8080:tomcat的應用埠
- 80:HTTP的服務埠
- 3306:MariaDB資料庫的訪問埠
- 443:https的埠
之前的MySQL遠端配置一直失敗,可能是忘記打開了3306埠,下次需要注意。
二、JDK的安裝
採用的離線解壓安裝方式,提前下好安裝包,https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html。然後使用Xftp上傳到伺服器。
再解壓到自己想要的目錄內,tar -zxvf jdk-13.0.1_linux-x64_bin.tar.gz 。
解壓後,配置環境變數,使用命令 vim/etc/profile 編輯,在最後加上如下內容。
儲存退出後,使用命令 source /etc/profile 重新載入配置檔案。(該命令執行結束無內容)
使用 java -version 命令檢視是否配置完成。
三、MariaDB的安裝和遠端連線
近來MySQL被收購,有閉源的風險,所以嘗試了MariaDB資料的使用。該資料庫完全相容了MySQL,並且開源免費。
MariaDB的安裝
採用的是線上安裝。
首先輸入命令:vi /etc/yum.repos.d/MariaDB.repo 在yum下新增配置檔案MariaDB.repo,並編輯內容:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
然後通過命令安裝即可。
yum install MariaDB-server MariaDB-client -y
MariaDB 安裝完畢後,立即啟動資料庫服務守護程序。
systemctl start mariadb
設定 MariaDB 在作業系統重啟後自動啟動服務。
systemctl enable mariadb
檢視 MariaDB 服務當前狀態。
systemctl status mariadb
對 MariaDB 進行安全配置
通過命令 mysql_secure_installation 進行安全配置,根據實際情況用Y/N回覆以下問題:
- 設定 MariaDB 的 root 賬戶密碼
- 刪除匿名使用者
- 禁用 root 遠端登入
- 刪除測試資料庫
- 重新載入許可權表
本人全都是選擇了Y,然後按回車。
在配置完資料庫的安全配置後,可以通過以下命令檢視版本,確認 MariaDB已安裝成功。
mysql --version
可以通過 MariaDB 命令列登入,然後對資料庫進行sql查詢操作。
mysql -u root -p
遠端連線
輸入命令,開啟root使用者的遠端許可權並重新整理即可。
grant all privileges on *.* to 'root'@'%' identified by 'password' ; flush privileges;
四、Tomcat的安裝和開啟
採用的離線安裝:
下載後上傳到伺服器,並解壓到自己的目錄下,即安裝完成。
開啟服務,進入解壓好的tomcat的bin目錄下。輸入命令:./startup.sh開啟tomcat服務。
即可在瀏覽器輸入雲伺服器的IP地址加8080埠號訪問。
五、JDBC連線
雖說MariaDB 和 MySQL 相容,但也難免存在問題。
首先是MariaDB的JDBC連線,需要jar包支援,下載地址https://mariadb.com/downloads/#connectors,在右邊選擇Java的版本下載即可。
下載得到的jar放入javaweb專案 Add as a Library即可。
程式碼也有需要修改的地方。
driverClassName=org.mariadb.jdbc.Driver
url=jdbc:mariadb://1.1.1.1:3306/dbname 填上雲伺服器的IP地址
import java.sql.*; public class DBTest { public static void main(String[] args) { try { String driver ="org.mariadb.jdbc.Driver"; //從配置引數中獲取資料庫url String url = "jdbc:mariadb://(1.11.1.1):3306/test"; //從配置引數中獲取使用者名稱 String user = "root"; //從配置引數中獲取密碼 String pass = ""; //註冊驅動 Class.forName(driver); //獲取資料庫連線 Connection conn = DriverManager.getConnection(url,user,pass); //建立Statement物件 Statement stmt = conn.createStatement(); System.out.println("Success!"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
並且注意,MariaDB對sql語句的大小寫敏感,資料庫名,表明或欄位名必須都為小寫,才可以,否則報錯查詢不到。
六、本地javaweb部署到雲伺服器
將專案打包成war包,然後複製進tomcat/webapps/目錄下即可。
IDEA下的war包方法:
然後在專案的 out 目錄下即可檢視到打包好的war包。
然後在瀏覽器地址,上面步驟的8080後面加上專案名字,即可在外網輸入IP地址訪問到我們的專案啦。