以前作項目都是在本地跑,最近遇到須要在在雲服務器(阿里雲或者騰訊雲均可以,差很少)上部署Java Web項目的問題,一路上遇到了好多坑,在成功部署上去以後寫一下部署的步驟與過程,一是幫助本身總結記憶,二是但願能幫到有一樣需求的小夥伴。話很少說,下面開始。javascript
首先,個人Java Web項目是一個很簡單的學生管理系統(相信不少人都作過吧,挺簡單的),基於Tomcat和MySQL,因此此次在雲服務器上部署也是基於這兩個的,在開始以前,你本地首先要有一個能跑起來的項目,例以下面這樣:html
在有了本地項目以後,下面就是開始部署了。java
第一步,你須要購買一個雲服務器mysql
騰訊雲或者阿里雲均可以這兩個在國內都不錯,阿里雲可能更好一些(雖然我用的是騰訊雲2333),若是你是學生的話,購買還有學生優惠,每月只要10元錢差很少,這裏是騰訊雲學生優惠地址和阿里雲學生優惠地址web
在你購買了你想要的服務器後,就能夠進入控制檯查看你購買的服務器了,我購買的雲主機的系統的Ubuntu,固然選擇其餘系統也能夠,好比據說比較火的CentOS:sql
在上圖中,就能夠看到雲服務器的詳細信息了,而且騰訊雲或者阿里雲會給每一個雲服務器提供一個公網IP和內網IP(好比個人公網IP就是123.207.64.17
),當你把項目部署到雲服務時,其餘人就能夠經過公網IP來訪問,在購買了以後,通常服務器就會自動開始運行,你能夠在本地打開CMD命令行,輸入ping 你的公網IP
來測試是否能夠訪問,若是出現下面的提示,就說明能夠訪問:數據庫
在購買了雲服務後,你須要設置你雲服務器的用戶名和登陸密碼,就至關於你打開本地電腦還須要用戶名和密碼同樣(登陸名通常都是它提供好的,好比騰訊雲Ubuntu就默認是ubuntu,阿里雲CentOS默認是root),以後你就能夠在下面的步驟中,經過用戶名和密碼來登陸你的雲服務器。apache
WinSCP 是一個 Windows 環境下使用的 SSH 的開源圖形化 SFTP 客戶端。同時支持 SCP 協議。它的主要功能是在本地與遠程計算機間安全地複製文件,而且能夠直接編輯文件。說白了就是能夠在你本地計算機和雲服務器之間傳輸文件的東西,可讓你把本地項目放到雲服務器上面去。WinSCP界面以下:瀏覽器
在第一張圖中,你須要選擇SCP協議,主機名就是騰訊雲或阿里雲給你提供的公網IP,端口號選擇22,用戶名密碼就是你上一步中設置的用戶名和密碼,以後點擊登陸就能夠,登陸成功後就是第二張圖,分爲左右兩欄,左邊是你本地計算機,右邊是雲服務的目錄,把左邊的文件往右邊拖就是上傳到雲服務器,從右邊往左邊拖動文件就是從雲服務器下載到本地。
PuTTY是一個用來遠程管理雲服務器的東西,相似於一個遠程Linux終端,能夠進行各類命令行操做,項目的部署大部分操做都是經過這個軟件進行的。
在第一張圖中,HostName就是公網IP,端口號選擇22,協議選擇SSH,在SaveSessions裏面給你的這個會話起個名字好比個人TencentWebServer,點擊Sava保存,而後Open(以後再次登陸時就能夠直接雙擊保存過的那個名字就好了),登陸成功後在終端輸入用戶名密碼就是第二張圖中的樣子。
第三步,雲服務器上安裝jdk,Tomcat,MySQL
在上面的步驟完成後,接下來就是安裝配置服務器上的項目環境了,由於我部署的這個項目是基於Java+Tomcat+MySQL的,因此須要安裝上面那幾個。
在進行下面的步驟以前,先更新源
sudo apt-get update
雲服務器安裝jdk
在網上搜了很久,不少都很麻煩,其實可直接一條命令搞定,直接在PuTTY終端裏面輸入
sudo apt-get install openjdk-8-jdk
(我安裝的是jdk8,你也能夠安裝別的版本,和你本地項目用的版本同樣就行),以後也不用配置環境變量(雖然我看到有的博客裏寫要配置環境變量),以後經過
java
和
javac
這兩個命令來測試是否安裝成功了便可:
若是下面出現一大堆選項,就說明成功了。
雲服務器安裝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
命令來查看當前的路徑,
執行解壓命令:
sudo tar -xvzf apache-tomcat-8.5.35.tar.gz
解壓以後是個文件夾,能夠將這個文件夾移到其餘位置,我是在usr目錄下新建了個Tomcat目錄,以後放了進去。
命令行進入apache-tomcat-8.5.35目錄下的bin目錄,執行ls
命令,能夠看到下面這些文件:
有時候進入bin目錄會提示沒有權限Permission denied
,這時能夠獲取root權限,以後再進入,就能夠看到裏面的文件了。這裏面有兩個會比較常常用到,分別是「startup.sh」和「shutdown.sh」,分別用來開啓Tomcat服務和關閉。 執行
./startup.sh
這樣就是開啓Tomcat服務了,這時候你在瀏覽器地址欄輸入http://你的公網IP:8080
(好比個人就是http://123.207.64.17:8080)就能夠看到Tomcat服務的初始界面:
若是你看到了這個界面,Tomcat服務就算是成功開啓了,以後想要關閉能夠執行./shutdown.sh
。
有的人在這裏可能會遇到一些問題,就是命令行中以及顯示Tomcat started,可是在瀏覽器中仍是訪問不了頁面,那麼多是由於你的雲服務的端口沒有開放,須要去雲服務器安全組中設置訪問規則。
騰訊雲:進入控制檯 → 選擇左邊側欄的安全組 → 點擊新建 → 以下圖所示配置便可
阿里雲:進入控制檯 → 選擇左邊側欄的安全組 → 配置規則 → 快速建立規則 → 以下圖所示配置便可
其餘一些參考:Linux Ubuntu 安裝Tomcat
雲服務器安裝MySQL
Ubuntu上安裝MySQL其實挺簡單的,只須要下面幾條命令:
sudo apt-get install mysql-server
sudo apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
在執行完畢以後,就會安裝,安裝過程可能會提示讓設置MySQL登陸密碼什麼的,這個密碼就是你Java Web項目裏鏈接數據庫時用到的密碼,在安裝完以後,能夠經過下面這個命令來檢查是否安裝成功
sudo netstat -tap | grep mysql
若是出現下面的,就表示成功了,MySQL的socket處於listen狀態
這個時候MySQL服務已經啓動了(若是以後須要開啓或關閉的話能夠用service mysql start
和service mysql stop
)而後你須要在命令行登陸MySQL,能夠用下面的命令來登陸
mysql -u root -p
以後用 show databases; 就能夠看到你的數據庫了,能夠看到圖中,student這個數據庫就是我新建的用來存放學生管理系統這個項目的數據庫。以後,你須要新建你的JavaWeb項目所需的數據庫。
第四步,將JavaWeb項目打包成war包
在上面幾個步驟都完成以後,就只須要把本地項目放上去就能夠了,首先須要將項目打包成war包,我使用的IDE是IntelliJ IDEA,打包其實很簡單,這裏就再也不說了(實際上是打字打累了233333),給幾個我當時參考的連接吧:
Idea將javaweb項目打包成war包並部署到服務器的Tomcat上,
使用IneliJ IDEA 2016將Java Web項目導出爲War包
在打包完成以後,使用WinSCP服務器圖形化文件管理工具,把這個war包拖拽到雲服務器的tomcat/webapps/
目錄下,以後重啓Tomcat(先./shutdown.sh
再./startup.sh
),以後這個war包就會自動解壓好了,以下圖:
有時候可能會出現訪問時沒有權限的問題,沒法進入那個文件夾,以下圖:
這時候能夠退出WinSCP,從新登陸,在登陸時點進去高級選項,按照下圖設置便可:
第五步,在瀏覽器輸入url訪問你的Java Web項目
若是上面幾部都成功的話,如今你就能夠在瀏覽器中訪問你部署在雲服務器上的項目了,在瀏覽器地址欄中輸入http://公網IP:8080/項目路徑
,其中項目路徑通常就是你放入tomcat/webapps/
下面解壓後的文件夾名,好比個人就是http://123.207.64.17:8080/StudentManager/
通過上面幾個步驟,咱們就成功地把基於Tomcat和MySQL的Java Web項目部署到的雲服務器上。若是你按照上面的步驟來作遇到了什麼問題,歡迎在下面留言交流。