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