1. 程式人生 > >java專案部署到遠端伺服器上

java專案部署到遠端伺服器上

一、前言

前面我們已經嘗過了在雲伺服器上部署程式碼的甜頭了,現在主菜就要上場了,那就是將我們的 JavaWeb 專案部署到雲伺服器上。興奮吧?淡定淡定~

二、專案部署

我們對於 Java Web 專案在本地機器(無論是 Windows 還是 Linux)上的部署已經瞭然於心了,那麼對於在雲伺服器上部署 Java Web 專案又是如何操作的呢? 其實很簡單,還是離不開 Web 專案部署的那三點: 
① 基礎的 JDK 環境 
② 一個 Web 伺服器。如 Tomcat、JBoss 
③ 一款資料庫。如:mysql

對於雲伺服器上 Java Web 專案的部署,和平時在 Windows、Linux 下部署是一樣的。最多也就是隻能使用純命令模式來操作而已,其實過程都一樣。

2.1 環境準備

既然是 Java Web 專案的部署,首先自然需要配置好相關的環境羅。也就是:先在雲主機上搭建好 Java 開發環境,如 OpenJDK 的安裝、Tomcat 的安裝、Mysql 資料庫的安裝。 
注:關於這些軟體的安裝就不再該篇文章中敘述了,我會在另外的2篇文章中詳細闡述的。

2.2 專案部署

我們要部署 Java Web 專案,那就至少得將專案上傳到雲伺服器。其實過程很簡單,基本上也就是下面三個步驟: 
① 打包上傳:將專案打包成 war 檔案,然後利用 FileZilla 傳到遠端伺服器 
② 部署:使用 cp 或 mv 命令,將 war 檔案移動到 Tomcat 目錄下的 webapps 下 
③ 重啟 Tomcat,訪問我們的專案

在這個過程中,我們需要注意。因為一般而已,作為一個 Web 專案,我們肯定是有資料庫的使用的。那麼資料庫部分怎麼辦呢?其實,只需要將我們已有的資料庫轉儲為 sql 檔案,然後將 sql 檔案上傳到雲伺服器上執行即可。以 mysql 為例,如下操作:

Mysql 案例

① 轉儲為 sql 指令碼,並上傳:先在本地將我們專案使用的資料庫轉為 sql 檔案,上傳到雲伺服器上 

① 轉儲為 sql 指令碼,並上傳:先在本地將我們專案使用的資料庫轉為 sql 檔案,上傳到雲伺服器上 
mysql-thinkphp1
② 執行 sql:然後進入 mysql 中執行該 sql 檔案 
mysql-thinkphp2

發現執行的時候有錯。原因是我們此時的 mysql 中沒有 thinkphp 這個資料庫。我們檢視下當前的資料庫,執行命令 show databases;

 
mysql-thinkphp3

發現確實沒有 thinkphp 這個資料庫,因此我們建立一個,執行命令 create database thinkphp; 
mysql-thinkphp4 

再次執行 
mysql-thinkphp5

發現還是報錯。原因是我們當前使用的是 mysql 這個資料庫,而不是 thinkphp 資料庫。因此我們切換到 thinkphp 資料庫,執行命令 use thinkphp;,然後再一次執行 sql 檔案: 
mysql-thinkphp6 

③ 檢視結果
mysql-thinkphp7
先不管顯示的是亂碼(因為剛才檢視該 sql 檔案就知道會是這個結果了),可以看到確實已經弄好了 
④ 部署專案:將專案部署到 Tomcat 容器中,還是使用 cp 或 mv 命令將 war 檔案移到 /usr/local/tomcat8/webapps/ 下,重啟 Tomcat,再訪問 
fw-1

可以看到成功了對吧?其實不然,因為我們發現,需要使用資料庫獲取資料的部分卻沒有資料,這是為啥呢?錯誤的原因可能有以下幾個: 
① 專案中使用的是 mysql5.1.10 的驅動 jar,而云伺服器預設的是使用 mysql5.1.73 因此,要麼重灌一個 mysql,要麼將專案中的驅動改為 mysql5.1.73。 
② 未將 mysql 驅動jar 放入 jvm/java-1.8.0xxx/jre/lib/ext/ 下 
③ 密碼不正確 
④ 使用的是 root 賬戶,而 root 賬戶在 Linux 下訪問 mysql 是不需要使用密碼的

通過排查,發現是因為專案中是使用 root 賬戶的,因此我們在本地中將專案程式碼關於資料庫連線部分改一下,將密碼置空串,再次部署,就可以恢復正常了,看看結果吧! 
fw-2


成功顯示,連上了 mysql!