Linux系統(tǒng)下Java部署環(huán)境搭建與項目部署超詳細(xì)步驟
1. 軟件環(huán)境準(zhǔn)備
1.1 更新軟件包庫
在 Ubuntu 上,每次安裝軟件前建議更新系統(tǒng)的軟件包數(shù)據(jù)庫:
sudo apt update
此命令會從預(yù)設(shè)的軟件源同步最新軟件包的信息。
1.2 安裝 OpenJDK
Java 環(huán)境是運行 Java Web 項目的必備條件。
查找 JDK 包版本 執(zhí)行:
apt list | grep "jdk"
查看有哪些版本的 JDK 可供安裝。
安裝 OpenJDK 17 建議使用較新版本的 OpenJDK,例如:
sudo apt install openjdk-17-jdk
驗證安裝 檢查 Java 版本:
java -version
openjdk version "17.0.12" ...
表示安裝成功。
1.3 安裝 MySQL 數(shù)據(jù)庫
數(shù)據(jù)庫在 Web 項目中通常用于存儲數(shù)據(jù)。
查找 MySQL 包 執(zhí)行:
apt list | grep "mysql-server"
安裝 MySQL 執(zhí)行:
sudo apt install mysql-server
安裝過程中可能會提示確認(rèn)下載和安裝,輸入
Y
繼續(xù)。檢查 MySQL 服務(wù)狀態(tài) 執(zhí)行:
sudo systemctl status mysql
狀態(tài)應(yīng)顯示“active (running)”。
進行 MySQL 安全設(shè)置 為了增強安全性,請運行:
sudo mysql_secure_installation
根據(jù)提示操作:
是否設(shè)置驗證組件:建議輸入
Y
并選擇密碼強度(例如 2 - STRONG);刪除匿名用戶、禁止 root 遠程登錄和移除 test 數(shù)據(jù)庫等,全部按照提示選擇
Y
確認(rèn)即可。
2. 部署 Web 項目到 Linux
2.1 數(shù)據(jù)準(zhǔn)備和配置
數(shù)據(jù)庫建表
根據(jù)提供或自定義的建表 SQL 腳本,在 MySQL 中創(chuàng)建數(shù)據(jù)庫及表結(jié)構(gòu)。
登錄 MySQL:
sudo mysql -u root -p
然后執(zhí)行 SQL 腳本創(chuàng)建數(shù)據(jù)庫。
環(huán)境配置文件修改
在 Spring Boot 項目中,根據(jù)不同環(huán)境編寫配置文件:例如
application-dev.yml
與application-prod.yml
。在測試環(huán)境里使用開發(fā)配置,在生產(chǎn)環(huán)境中改為正式數(shù)據(jù)庫連接。
主配置文件
application.yml
中指定當(dāng)前使用的 profile:spring: profiles: active: prod
2.2 Maven 打包項目
在本地環(huán)境中 進入項目根目錄,執(zhí)行:
mvn clean package
如果測試用例因環(huán)境依賴而失敗,可以使用:
mvn clean package -DskipTests
打包結(jié)果 Maven 執(zhí)行完成后,會在
target/
目錄下生成一個可執(zhí)行的 jar 包(如blog-spring-0.0.1-SNAPSHOT.jar
)。
2.3 上傳 Jar 包至云服務(wù)器
使用 XShell 拖拽上傳
打開 XShell 后,直接將 jar 包從文件管理器拖動至 XShell 窗口,即可完成文件上傳。使用 lrzsz 上傳工具(備用方案)
安裝 lrzsz:
sudo apt-get install lrzsz
在 XShell 中執(zhí)行上傳命令:
上傳命令(在終端中輸入):
sz blog-spring-0.0.1-SNAPSHOT.jar
彈出對話框選擇要上傳的文件,上傳完成后,可在當(dāng)前目錄下看到 jar 文件。
2.4 啟動應(yīng)用程序
在云服務(wù)器中進入 jar 文件所在目錄 使用
cd
命令定位到上傳文件的目錄(例如:cd ~/java
)。后臺啟動應(yīng)用 使用
nohup
命令使程序在后臺運行,并將輸出重定向到日志文件中,這樣即使退出終端程序也不會停止運行:bash
nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
nohup
:使命令在退出終端后繼續(xù)運行> app.log 2>&1
:將標(biāo)準(zhǔn)輸出和錯誤輸出保存到app.log
文件&
:使命令在后臺執(zhí)行
驗證程序運行情況
使用命令查看運行的進程:
ps -ef | grep java
查看日志文件,確認(rèn)啟動完成:
tail -f app.log
2.5 配置防火墻與端口開放
確認(rèn)應(yīng)用端口 假設(shè)應(yīng)用監(jiān)聽 8080 端口,則需要確保云服務(wù)器安全組或防火墻允許外部訪問該端口。
在云服務(wù)器管理控制臺
登錄云服務(wù)商(如騰訊云、阿里云)管理后臺,進入防火墻或安全組設(shè)置。
添加相應(yīng)規(guī)則:
協(xié)議:TCP
端口號:8080
來源:建議設(shè)置為
0.0.0.0/0
(所有 IP)或根據(jù)實際需要限制 IP 范圍
2.6 訪問與驗證項目
在瀏覽器中訪問 輸入 URL:
http://[外網(wǎng)IP]:8080/blog_login.html
(將
[外網(wǎng)IP]
替換為云服務(wù)器實際 IP,8080
替換為實際應(yīng)用監(jiān)聽端口)功能驗證
檢查登錄、注冊、博客列表展示、新增博客等功能是否正常
如遇錯誤,回到云服務(wù)器查看日志文件進行問題排查
2.7 進程管理與問題排查
查看當(dāng)前 Java 進程
ps -ef | grep java
停止舊進程 若需重啟服務(wù),先使用
kill
命令結(jié)束當(dāng)前進程(假設(shè) PID 為 12345):kill -9 12345
常見問題檢查
數(shù)據(jù)庫連接密碼錯誤、MySQL 大小寫問題
JDK 版本不匹配,檢查
java -version
防火墻端口未開放,重新檢查云服務(wù)安全配置
總結(jié)
以上內(nèi)容詳細(xì)介紹了從 Linux 基本使用到 Java Web 項目部署的全過程。簡單回顧主要步驟:
環(huán)境搭建
選擇并購買云服務(wù)器,獲取外網(wǎng) IP、管理員賬號和密碼使用 XShell 等工具通過 SSH 連接到 Linux 服務(wù)器Linux 基本命令學(xué)習(xí)
掌握文件管理、目錄切換、文本編輯等基礎(chǔ)操作安裝運行環(huán)境
使用 apt 更新軟件包,安裝 OpenJDK 和 MySQL并且完成 MySQL 安全設(shè)置,確保數(shù)據(jù)庫安全項目打包與上傳
在本地使用 Maven 打包生成 jar 包,通過 XShell 或 lrzsz 上傳文件后臺運行及驗證
利用 nohup 后臺啟動 jar,開放必要端口,測試訪問效果排查與進程管理
檢查進程、日志,使用 kill 命令重啟服務(wù)
這份指南可以作為實際操作時的參考文檔,幫助你理清從環(huán)境搭建、軟件安裝到項目上線的每一步細(xì)節(jié)。對部署流程有疑問或需要進一步了解自動化部署工具(如 Jenkins、Docker 等),都可以在此基礎(chǔ)上進行進一步探索和實踐。
到此這篇關(guān)于Linux系統(tǒng)下Java部署環(huán)境搭建與項目部署的文章就介紹到這了,更多相關(guān)Linux Java部署環(huán)境搭建與項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別
轉(zhuǎn)發(fā)和重定向都是常用的頁面跳轉(zhuǎn)方式,但在實現(xiàn)上有一些區(qū)別,本文主要介紹了Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別,具有一定的參考價值,感興趣的可以了解一下2023-11-11Java數(shù)據(jù)結(jié)構(gòu)之Map與Set專篇講解
這篇文章通過實例面試題目來講解Java中Map和Set之間的關(guān)系,具有很好的參考價值,Map與Set在面試中經(jīng)常會遇到。一起跟隨小編過來看看吧2022-01-01vue+springboot上傳文件、圖片、視頻及回顯到前端詳解
一般來說vue可以使用axios或者fetch等ajax庫發(fā)送文件請求,而springboot則可以使用Spring MVC的方式來處理上傳文件請求,下面這篇文章主要給大家介紹了關(guān)于vue+springboot上傳文件、圖片、視頻及回顯到前端的相關(guān)資料,需要的朋友可以參考下2023-04-04Java并發(fā)編程(CyclicBarrier)實例詳解
這篇文章主要介紹了Java并發(fā)編程(CyclicBarrier)實例詳解的相關(guān)資料,JAVA編寫并發(fā)程序的時候,我們需要仔細(xì)去思考一下并發(fā)流程的控制,如何讓各個線程之間協(xié)作完成某項工作。2017-07-07