1. 程式人生 > >web專案部署到CentOs 7上執行

web專案部署到CentOs 7上執行

環境準備

JDK

如果你的虛擬機器上還沒有JDK環境你可以參照我的CentOs 7S下安裝JDK8去安裝

Tomcat

如果你的虛擬機器上還沒有Tomcat環境你可以參照我的CentOs 7下安裝Tomcat8去安裝

Mysql

Mysql是非必須的,等web專案在你虛擬式執行時可以連到你本地電腦的Mysql;但是本篇博文是直接連虛擬機器上的Mysql,如果你虛擬機器還沒有Mysql可以參考我的CentOs 7下安裝MySQL5.7

web專案

這裡給大家一個福利,我簡單寫了個SSM框架的web專案可以在我github上下載原始碼,注意改下jdbc.properties檔案。當然大佬們可以用自己寫的專案。

部署步驟

開使用者遠端連線許可權

這裡根據你的web專案war包的連線Mysql的使用者,我直接用的是root,所以需要給root開啟許可權,細心的同學會發現你的mysql庫的user表的host欄位是localhost,所以你可以用localhost:3306去連線你的mysql。

登入

輸入下面命令

[[email protected] ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111
) [[email protected] ~]#

報錯

可以看到我報了

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (111)

的錯。如果你沒有報錯直接登入進去了請忽略,跟我同樣報錯的同學請看下面的解決方案。

找到檔案

進入/tmp目錄可以看到mysql.sock和mysql.sock.lock兩個檔案

cd /tmp
ll

刪除檔案

刪除這兩個檔案

rm -rf mysql.sock*

重啟MySQL服務

service mysql.server restart

重啟後再次登入就可以了。

授予許可權

上面說了我使用者是root,密碼替換成你自己的,然後記得重新整理許可權

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mima' WITH GRANT OPTION;

FLUSH PRIVILEGES; 

防火牆開啟8080和3306

8080是虛擬機器上tomcat的埠(預設埠我沒有修改,如果你修改了就要跟著變),3306是虛擬機器上mysql的埠,具體命令如下,上面是8080下面是3306的

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent

然後防火牆重新載入

firewall-cmd --reload

打包web專案

先修改jdbc.properties檔案的url 為
···
url=jdbc:mysql://192.168.44.128:3306/further?useUnicode=yes&characterEncoding=utf8
···
192.168.44.128是我這臺虛擬機器的ip,你需要替換成自己虛擬機器的ip,如果不知道可以通過ifconfig命令來檢視,至於further是我專案資料的名字,後面可以通過本地的navicat去連線虛擬機器的mysql進行建庫建表操作非常簡單就不多說了。
由於我用的eclipse,你可以滑鼠放在專案上,右鍵選擇Export>war file會出現
這裡寫圖片描述
上面是填寫專案名,下面是打包後的war包在你本地的路徑。比如我是D:\linux\further.war

上傳war

先開啟tomcat服務

/usr/local/tomcat/bin/startup.sh

然後進去tomcat的webapps目錄

d /usr/local/tomcat/webapps

輸入下面命令,選擇你剛剛上傳的war包路徑

rz

傳輸完畢後,就部署完畢了,接下來驗證以下

驗證

去瀏覽器呼叫一個get介面