之前做項目都是在本地跑,最近遇到需要在在云服務(wù)器(阿里云或者騰訊云都可以,差不多)上部署Java Web項目的問題,一路上遇到了好多坑,在成功部署上去之后寫一下部署的步驟與過程,一是幫助自己總結(jié)記憶,二是希望能幫到有同樣需求的小伙伴。話不多說,下面開始。
首先,我的Java Web項目是一個很簡單的學(xué)生管理系統(tǒng)(相信很多人都做過吧,挺簡單的),基于Tomcat和MySQL,所以這次在云服務(wù)器上部署也是基于這兩個的,在開始之前,你本地首先要有一個能跑起來的項目,例如下面這樣:
在有了本地項目之后,下面就是開始部署了。
-
第一步,你需要購買一個云服務(wù)器
騰訊云或者阿里云都可以這兩個在國內(nèi)都不錯,阿里云可能更好一些(雖然我用的是騰訊云2333),如果你是學(xué)生的話,購買還有學(xué)生優(yōu)惠,每個月只要10元錢差不多,這里是騰訊云學(xué)生優(yōu)惠地址和阿里云學(xué)生優(yōu)惠地址
在你購買了你想要的服務(wù)器后,就可以進入控制臺查看你購買的服務(wù)器了,我購買的云主機的系統(tǒng)的Ubuntu,當(dāng)然選擇其他系統(tǒng)也可以,比如聽說比較火的CentOS:
騰訊云主機
在上圖中,就可以看到云服務(wù)器的詳細信息了,并且騰訊云或者阿里云會給每個云服務(wù)器提供一個公網(wǎng)IP和內(nèi)網(wǎng)IP(比如我的公網(wǎng)IP就是123.207.64.17),當(dāng)你把項目部署到云服務(wù)時,其他人就可以通過公網(wǎng)IP來訪問,在購買了之后,一般服務(wù)器就會自動開始運行,你可以在本地打開CMD命令行,輸入ping 你的公網(wǎng)IP來測試是否可以訪問,如果出現(xiàn)下面的提示,就說明可以訪問:
ping命令測試
在購買了云服務(wù)后,你需要設(shè)置你云服務(wù)器的用戶名和登錄密碼,就相當(dāng)于你打開本地電腦還需要用戶名和密碼一樣(登錄名一般都是它提供好的,比如騰訊云Ubuntu就默認是ubuntu,阿里云CentOS默認是root),之后你就可以在下面的步驟中,通過用戶名和密碼來登錄你的云服務(wù)器。 -
WinSCP 是一個 Windows 環(huán)境下使用的 SSH 的開源圖形化 SFTP 客戶端。同時支持 SCP 協(xié)議。它的主要功能是在本地與遠程計算機間安全地復(fù)制文件,并且可以直接編輯文件。說白了就是可以在你本地計算機和云服務(wù)器之間傳輸文件的東西,可以讓你把本地項目放到云服務(wù)器上面去。WinSCP界面如下:
登錄WinSCP登錄成功界面
在第一張圖中,你需要選擇SCP協(xié)議,主機名就是騰訊云或阿里云給你提供的公網(wǎng)IP,端口號選擇22,用戶名密碼就是你上一步中設(shè)置的用戶名和密碼,之后點擊登錄就可以,登錄成功后就是第二張圖,分為左右兩欄,左邊是你本地計算機,右邊是云服務(wù)的目錄,把左邊的文件往右邊拖就是上傳到云服務(wù)器,從右邊往左邊拖動文件就是從云服務(wù)器下載到本地。
PuTTY是一個用來遠程管理云服務(wù)器的東西,類似于一個遠程Linux終端,可以進行各種命令行操作,項目的部署大部分操作都是通過這個軟件進行的。
登錄PuTTY
登錄成功界面在第一張圖中,HostName就是公網(wǎng)IP,端口號選擇22,協(xié)議選擇SSH,在SaveSessions里面給你的這個會話起個名字比如我的TencentWebServer,點擊Sava保存,然后Open(之后再次登錄時就可以直接雙擊保存過的那個名字就行了),登錄成功后在終端輸入用戶名密碼就是第二張圖中的樣子。
-
第三步,云服務(wù)器上安裝jdk,Tomcat,MySQL
在上面的步驟完成后,接下來就是安裝配置服務(wù)器上的項目環(huán)境了,因為我部署的這個項目是基于Java+Tomcat+MySQL的,所以需要安裝上面那幾個。
在進行下面的步驟之前,先更新源
sudo apt-get update更新源-
云服務(wù)器安裝jdk
在網(wǎng)上搜了好久,很多都很麻煩,其實可直接一條命令搞定,直接在PuTTY終端里面輸入
sudo apt-get install openjdk-8-jdk(我安裝的是jdk8,你也可以安裝別的版本,和你本地項目用的版本一樣就行),之后也不用配置環(huán)境變量(雖然我看到有的博客里寫要配置環(huán)境變量),之后通過
java和
javac這兩個命令來測試是否安裝成功了即可:
java命令測試javac命令測試如果下面出現(xiàn)一大堆選項,就說明成功了。
-
云服務(wù)器安裝Tomcat
安裝Tomcat有好多種方式,可以在本地去Tomcat官網(wǎng)下載再用WinSCP上傳到云服務(wù)器上,也可以直接在云服務(wù)器上命令行下載,本地下載再上傳比較簡單,就不多說了,說說用命令行操作。我是通過
wget命令來下載的,在終端輸入wget https://www.apache.org/dist/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz然而由于眾所周知的原因,在國內(nèi)直接從官網(wǎng)下載速度很慢,推薦用國內(nèi)鏡像,國內(nèi)有很多鏡像(例如,清華鏡像站、華科鏡像站),我用的是清華的鏡像,所以命令變?yōu)?/p>
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz下載完之后你就可以在你輸入命令時所在的路徑下找到下載好的壓縮包,你可以使用
pwd命令來查看當(dāng)前的路徑,wget下載Tomcat壓縮包
Tomcat壓縮包執(zhí)行解壓命令:
sudo tar -xvzf apache-tomcat-8.5.35.tar.gz解壓之后是個文件夾,可以將這個文件夾移到其他位置,我是在usr目錄下新建了個Tomcat目錄,之后放了進去。
命令行進入apache-tomcat-8.5.35目錄下的bin目錄,執(zhí)行
ls命令,可以看到下面這些文件:查看Tomcat bin目錄下文件有時候進入bin目錄會提示沒有權(quán)限
Permission denied,這時可以獲取root權(quán)限,之后再進入,就可以看到里面的文件了。這里面有兩個會比較經(jīng)常用到,分別是startup.sh和shutdown.sh,分別用來開啟Tomcat服務(wù)和關(guān)閉。
執(zhí)行./startup.sh開啟tomcat這樣就是開啟Tomcat服務(wù)了,這時候你在瀏覽器地址欄輸入
http://你的公網(wǎng)IP:8080(比如我的就是http://123.207.64.17:8080)就可以看到Tomcat服務(wù)的初始界面:
訪問公網(wǎng)IP如果你看到了這個界面,Tomcat服務(wù)就算是成功開啟了,之后想要關(guān)閉可以執(zhí)行
./shutdown.sh。有的人在這里可能會遇到一些問題,就是命令行中以及顯示Tomcat started,但是在瀏覽器中還是訪問不了頁面,那么可能是因為你的云服務(wù)的端口沒有開放,需要去云服務(wù)器安全組中設(shè)置訪問規(guī)則。
騰訊云:進入控制臺 → 選擇左邊側(cè)欄的安全組 → 點擊新建 → 如下圖所示配置即可
新建規(guī)則阿里云:進入控制臺 → 選擇左邊側(cè)欄的安全組 → 配置規(guī)則 → 快速創(chuàng)建規(guī)則 → 如下圖所示配置即可
新建規(guī)則其他一些參考:Linux Ubuntu 安裝Tomcat
-
云服務(wù)器安裝MySQL
Ubuntu上安裝MySQL其實挺簡單的,只需要下面幾條命令:
sudo apt-get install mysql-serversudo apt-get isntall mysql-clientsudo apt-get install libmysqlclient-dev在執(zhí)行完畢之后,就會安裝,安裝過程可能會提示讓設(shè)置MySQL登錄密碼什么的,這個密碼就是你Java Web項目里連接數(shù)據(jù)庫時用到的密碼,在安裝完之后,可以通過下面這個命令來檢查是否安裝成功
sudo netstat -tap | grep mysql如果出現(xiàn)下面的,就表示成功了,MySQL的socket處于listen狀態(tài)
檢查MySQL是否安裝成功
這個時候MySQL服務(wù)已經(jīng)啟動了(如果之后需要開啟或關(guān)閉的話可以用service mysql start和service mysql stop)然后你需要在命令行登錄MySQL,可以用下面的命令來登錄mysql -u root -p登錄MySQL之后用
show databases;就可以看到你的數(shù)據(jù)庫了,可以看到圖中,student這個數(shù)據(jù)庫就是我新建的用來存放學(xué)生管理系統(tǒng)這個項目的數(shù)據(jù)庫。之后,你需要新建你的JavaWeb項目所需的數(shù)據(jù)庫。
-
-
第四步,將JavaWeb項目打包成war包
在上面幾個步驟都完成之后,就只需要把本地項目放上去就可以了,首先需要將項目打包成war包,我使用的IDE是IntelliJ IDEA,打包其實很簡單,這里就不再說了(其實是打字打累了233333),給幾個我當(dāng)時參考的鏈接吧:
Idea將javaweb項目打包成war包并部署到服務(wù)器的Tomcat上,
使用IneliJ IDEA 2016將Java Web項目導(dǎo)出為War包
在打包完成之后,使用WinSCP服務(wù)器圖形化文件管理工具,把這個war包拖拽到云服務(wù)器的
tomcat/webapps/目錄下,之后重啟Tomcat(先./shutdown.sh再./startup.sh),之后這個war包就會自動解壓好了,如下圖:解壓后有時候可能會出現(xiàn)訪問時沒有權(quán)限的問題,無法進入那個文件夾,如下圖:
無法訪問這時候可以退出WinSCP,重新登錄,在登錄時點進去高級選項,按照下圖設(shè)置即可:
點擊高級
高級設(shè)置 -
第五步,在瀏覽器輸入url訪問你的Java Web項目
如果上面幾部都成功的話,現(xiàn)在你就可以在瀏覽器中訪問你部署在云服務(wù)器上的項目了,在瀏覽器地址欄中輸入
http://公網(wǎng)IP:8080/項目路徑,其中項目路徑一般就是你放入tomcat/webapps/下面解壓后的文件夾名,比如我的就是http://123.207.64.17:8080/StudentManager/訪問部署好之后的項目
經(jīng)過上面幾個步驟,我們就成功地把基于Tomcat和MySQL的Java Web項目部署到的云服務(wù)器上。如果你按照上面的步驟來做遇到了什么問題,歡迎在下面留言交流。