將JavaWeb項目部署到云服務器的詳細步驟
1. 搭建 Java 部署環(huán)境
接下來以 Ubuntu 來進行演示
1.1. apt 包管理工具
apt 就相當于手機上的應用市場
列出所有軟件包:apt list
這個命令輸出所有包的列表,內容比較多,可以使用 grep 命令過濾輸出:apt list |grep "jdk"
如果需要下載的軟件,軟件包中沒有的話那就需要用其他方式下載了
安裝軟件前需要更新一下軟件包數據庫:sudo apt-get update

安裝軟件包
sudo apt install package_name
移除軟件包
sudo apt remove package_name
remove 命令將卸載給定的軟件包,但可能會留下一些配置文件。如果要刪除包含所有配置文件的軟件包,要使用 purge
apt remove 和 apt purge 的區(qū)別
?apt remove 刪除包的二進制文件,它留下了殘留的配置文件。
?apt purge 刪除與包相關的所有內容,包括配置文件。
如果弄亂了程序的配置,希望從系統(tǒng)中完全清除它的痕跡再重新開始,可以使用 apt purge。
1.2. 下載 jdk
sudo apt install openjdk-17-jdk
安裝之后可以使用 java -version 來查看是否安裝成功

關于如何卸載 jdk
檢查安裝的是哪個 OpenJDK
dpkg --list | grep -i jdk
移除 openjdk 包:
apt-get purge openjdk*
卸載 OpenJDK 相關包:
apt-get purge icedtea-* openjdk-*
檢查所有 OpenJDK 包是否都已卸載完畢:
dpkg --list | grep -i jdk
1.3. 下載 mysql
通過下面的命令來下載 mysql
sudo apt install mysql-server
安裝好之后可以通過 mysql --version來查看版本
也可以通過 sudo systemctl status mysql來檢查 mysql 的狀態(tài)

關于卸載 mysql:
- 停止 mysql
sudo systemctl stop mysql - 卸載 mysql
sudo apt-get remove --purge mysql-* - 刪除 MySQL 配置文件和數據
sudo rm -rf /etc/mysql/var/lib/mysql - 清理殘留文件和目錄
sudo apt-get autoremovesudo apt-get autoclean - 驗證卸載結果
mysql --version
2. 部署 Web 項目
開發(fā)環(huán)境:開發(fā)人員寫代碼用的機器。
測試環(huán)境:測試人員測試程序使用的機器。
生產環(huán)境 (線上環(huán)境): 最終項目發(fā)布時所使用的機器,對穩(wěn)定性要求很高。
2.1. mysql 安全設置
運行一下命令:
sudo mysql_secure_installation
運行之后的選項都輸入 Y,密碼強度設置為 2
輸入 sudo mysql 進入后設置密碼
ALTERUSER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自定義密碼';
設置之后就可以創(chuàng)建數據庫和表,保持和開發(fā)時的數據一致
2.2. 配置環(huán)境
開發(fā)環(huán)境和生產環(huán)境肯定是不一樣的,所以一些配置也需要修改,比如 mysql 的密碼或者一些日志的配置,就可以針對不同的平臺來進行配置

那么這三個文件哪個可以生效,可以在 application.yml 來配置下面這些內容
spring:
profiles:
active: @profile.name@是通過自定義 Maven 的參數來實現的
<profiles>
<profile>
<id>dev</id>
<properties>
<profile.name>dev</profile.name>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.name>prod</profile.name>
</properties>
</profile>
</profiles>這樣就可以通過 Maven 來進行選擇使用哪個配置了

也可以設置默認選擇的是哪個配置文件
<activation> <activeByDefault>true</activeByDefault> </activation>

2.3. 打包項目
上面配置好之后就可以打包了,注意要選擇 prod,然后雙擊 package

如果 Test 代碼中有與環(huán)境配置相關的操作 (比如數據庫相關的操作,可能由于密碼等不一致發(fā)生錯誤),打包會失敗,可以選擇跳過測試,因為執(zhí)行 package 時會按照步驟從上往下依次執(zhí)行

2.4. 上傳并運行 jar 包

可以直接把 jar 包拖進 finalshell 中或者使用 rz 命令來進行上傳,上傳之后通過 java -jar 命令來運行 jar 包

如果希望別人也能訪問的話,項目中設置的端口號(例如8080)也需要在云服務器上進行開放

不過使用上面的啟動方式的話,如果 finalshell 關了或者斷開連接,服務就停止了,就需要使用 nohup 命令來啟動:

看日志的話推薦 tail -f 命令來去看,就可以實時查看,后續(xù)新增的日志也是能看到的
3. 常見問題總結
如果說服務不能正常訪問,可能會有以下原因:
服務未啟動:
可以使用 ps -ef|grep java來查看程序是否運行
使用 curl 項目路徑來看是否返回有 html 頁面,如果有返回,那么就說明程序啟動成功了, 可能是端口號未開放
如果沒有啟動成功,需要查看對應的日志,可能是數據庫不存在或者數據庫密碼不正確,jdk版本 ,mysql 沒有設置密碼等問題
http 端口未開放,如果說云服務器的防火墻打開了,還需要再打開防火墻的端口號
可以使用sudu ufw status命令來查看防火墻是否開啟,下面顯示的是未開啟狀態(tài)

如果說在部署之后又發(fā)生了錯誤,要重新部署,就需要先把對應的進程結束掉,可以先通過netstat -nltp|grep 8080來查看對應的進程,再使用 kill 命令結束進程
以上就是將JavaWeb項目部署到云服務器的詳細步驟的詳細內容,更多關于將JavaWeb部署到云服務器的資料請關注腳本之家其它相關文章!
相關文章
深入淺析drools中Fact的equality?modes
這篇文章主要介紹了drools中Fact的equality?modes的相關知識,本文通過圖文實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
Java使用pulsar-flink-connector讀取pulsar catalog元數據代碼剖析
這篇文章主要介紹了Java使用pulsar-flink-connector讀取pulsar catalog元數據代碼剖析,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
SpringBoot創(chuàng)建監(jiān)聽器的方法示例
在Java中,監(jiān)聽器(Listener)是一種設計模式,它允許對象在 特定事件 發(fā)生時 自動執(zhí)行某些操作,這種設計模式通常用于實現 發(fā)布-訂閱模型,本文給大家介紹了SpringBoot創(chuàng)建監(jiān)聽器的方法示例,感興趣的通過可以參考一下2024-04-04
java面試散列表及樹所對應容器類及HashMap沖突解決全面分析
這篇文章主要介紹了java面試中的java散列表及樹所對應容器類與HashMap沖突解決的問題總結,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Spring Boot 2.7.8 原生 SSE 服務端開發(fā)實戰(zhàn)指南
在Spring Boot 2.7.8版本中,我們可以利用其原生支持,輕松實現SSE服務,從而為應用提供實時數據推送能力,本文給大家介紹Spring Boot 2.7.8 原生 SSE 服務端開發(fā)實戰(zhàn)指南,感興趣的朋友一起看看吧2026-04-04
解決springboot的JPA在Mysql8新增記錄失敗的問題
這篇文章主要介紹了解決springboot的JPA在Mysql8新增記錄失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06

