Linux服務(wù)器如何部署java項(xiàng)目
安裝JDK
我下載的是 jdk-8u341-linux-x64.tar.gz
一、上傳
在/usr/local中創(chuàng)建java文件夾
mkdir /usr/local/java
把JDK上傳到j(luò)ava目錄下

可以用ls命令查看一下

二、解壓
輸入命令
tar -xzvf jdk-8u341-linux-x64.tar.gz
jdk-8u341-linux-x64.tar.gz是我下載的JDK文件名,此處輸入自己下載對(duì)應(yīng)的文件名,解壓之后可以看到/usr/local/java目錄下多出了一個(gè)文件夾

解壓之后JDK的安裝包可以刪掉
三、配置JAVA環(huán)境變量
java命令測(cè)試,直接輸入java,出現(xiàn)-bash:java:command nor found說(shuō)明沒有配置java環(huán)境變量

需要配置的環(huán)境變量
| 項(xiàng)目 | Value | 備注 |
|---|---|---|
| PATH | 指定命令搜索路徑,shell執(zhí)行命令時(shí)會(huì)到PATH所指定的路徑中查看能否找到命令程序 | jdk的/bin中包含經(jīng)常要訪問(wèn)的javac、java、javadoc等命令,設(shè)置后可以在任何目錄下執(zhí)行該命令 |
| CLASSPATH | 指定類搜索路徑,JVM通過(guò)CLASSPATH來(lái)尋找類 | 設(shè)置jdk的/lib中的dt.jar和tools.jar以及當(dāng)前目錄"."給CLASSPATH |
| JAVA_HOME | 指向jdk安裝目錄 | Eclipse、NetBeans、Tomcat等軟件會(huì)通過(guò)JAVA_HOME來(lái)使用jdk |
| 使用vim編輯 |
vim /etc/profile
或使用文本編輯器打開
修改.bash_profile或者/etc/profile在末尾引入環(huán)境變量,JAVA_HOME的值填寫自己解壓包的路徑
export JAVA_HOME=/usr/local/java/jdk1.8.0_341
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
完成上述修改后,執(zhí)行命令:
source /etc/profile
或者重啟
輸入命令查看java版本,返回版本信息說(shuō)明環(huán)境變量設(shè)置生效

安裝MySQL
我是在docker環(huán)境部署的MySQL,docker部署框架支持mysql服務(wù)器的簡(jiǎn)單安裝和配置。
一、安裝Docker環(huán)境
#安裝Docker yum install docker -y #啟動(dòng)Docker服務(wù) service docker start
因?yàn)镈ocker在線安裝鏡像是從國(guó)外的DockerHub網(wǎng)站下載文件,所以速度超級(jí)慢,所以我們要給Docker設(shè)置加速器。
我用的是騰訊云主機(jī),所以設(shè)置騰訊云加速器是最快的。
打開/etc/docker/daemon.json文件,然后設(shè)置成如下內(nèi)容:
{
"registry-mirrors":["https:mirror.ccs.tencentyun.com"]
}
重新啟動(dòng)Docker服務(wù),加速器才能生效
service docker restart
二、安裝MySQL
利用剛才設(shè)置的加速器,我們可以在線安裝MySQL鏡像,這里我下載8.0.23版本的MySQL數(shù)據(jù)庫(kù)
docker pull mysql:8.0.23
創(chuàng)建容器的時(shí)候,我們需要把MySQL容器內(nèi)的數(shù)據(jù)目錄映射到CentOS系統(tǒng)上面。如果MySQL容器掛掉了,數(shù)據(jù)庫(kù)文件不會(huì)丟失。我們新建一個(gè)MySQL容器,掛載上這個(gè)數(shù)據(jù)目錄就又能正常使用MySQL了。
Docker會(huì)給每個(gè)容器創(chuàng)建一個(gè) 虛擬的網(wǎng)卡,然后分配一個(gè)Docker 內(nèi)網(wǎng)IP地址。假設(shè)A容器部署了MySQL,B容器中的Java程序想要訪問(wèn)A容器的MySQL,JDBC路徑就要寫A容器的Docker內(nèi)網(wǎng)IP地址,略顯麻煩。
這次把容器設(shè)置成 host模式,就是不讓Docker為容器創(chuàng)建虛擬網(wǎng)卡,Docker容器直接使用CentOS的網(wǎng)卡,所以A容器中l(wèi)ocalhost代表CentOS,B容器中的localhost也代表CentOS,兩個(gè)容器相互訪問(wèn),URL地址寫localhost即可。
例如B容器中JDBC路徑的host寫localhost,就能訪問(wèn)到A容器里面的MySQL。
這樣我們部署的若干容器,相互訪問(wèn)就簡(jiǎn)單多了。
MySQL容器我分配內(nèi)存空間是500M,如果將來(lái)覺得不夠用,刪除容器,再創(chuàng)建新容器的時(shí)候分配更大的內(nèi)存。
而且只要掛載上那些文件目錄,MySQL的數(shù)據(jù)就不會(huì)丟失。
docker run -it -d --name mysql --net=host \ //創(chuàng)建容器名字叫mysql host模式 -m 500m -v /root/mysql/data:/var/lib/mysql \ //分配內(nèi)存500M。做文件夾映射,MySQL默認(rèn)數(shù)據(jù)目錄是/var/lib/mysql 映射到CentOS/root/mysql/data文件夾上 -v /root/mysql/config:/etc/mysql/conf.d \ //映射mysql配置文件 -e MYSQL_ROOT_PASSWORD=abc123456 \ //傳入?yún)?shù),root賬號(hào)的密碼 -e TZ=Asia/Shanghai mysql:8.0.23 //mysql時(shí)區(qū)
\是換行,可以把命令分成多行來(lái)寫
修改mysql密碼
進(jìn)入容器并以root用戶登錄
docker exec -it mysql bash mysql -uroot -p abc123456 //修改密碼,與5.7版本不同 ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'xfx24805861WSQ'; FLUSH PRIVILEGES;
安裝Tomcat

在/usr/local/下創(chuàng)建tomcat文件夾,把壓縮包上傳到該目錄下
tar -xzvf apache-tomcat-9.0.65.tar.gz

啟動(dòng)Tomcat
啟動(dòng)前,可以在tomcat9的conf目錄下,找到server.xml文件修改tomcat的啟動(dòng)端口號(hào)

進(jìn)入tomcat服務(wù)器的bin目錄下輸入命令
./startup.sh

然后就可以通過(guò)ip:port訪問(wèn)tomcat了
如果訪問(wèn)不了,需要查看云服務(wù)器設(shè)置端口號(hào)允許訪問(wèn),我用的是騰訊云,在防火墻中設(shè)置

配置好就可以訪問(wèn)到tomcat了

關(guān)閉Tomcat服務(wù),在bin目錄下執(zhí)行./shutdown.sh命令

打包SpringBoot項(xiàng)目部署到Tomcat
我的項(xiàng)目是打成了war包,放到Tomcat的webapps文件夾中,啟動(dòng)tomcat會(huì)自動(dòng)解壓到同名文件夾,訪問(wèn)路徑也是這個(gè)文件夾名。

想要修改訪問(wèn)路徑,修改conf文件夾中的server.xml配置文件
docBase中的屬性值是原文件夾,path中的屬性值是修改后的訪問(wèn)路徑

最后就可以訪問(wèn)到自己的項(xiàng)目了

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java如何解決發(fā)送Post請(qǐng)求報(bào)Stream?closed問(wèn)題
這篇文章主要介紹了Java如何解決發(fā)送Post請(qǐng)求報(bào)Stream?closed問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
一文詳細(xì)解析Java?8?Stream?API中的flatMap方法
這篇文章主要介紹了Java?8?Stream?API中的flatMap方法的相關(guān)資料,flatMap方法是Java?StreamAPI中的重要中間操作,用于將流中的每個(gè)元素轉(zhuǎn)換為一個(gè)新的流,并將多個(gè)流合并為一個(gè)單一的流,常用于處理嵌套集合和一對(duì)多映射,需要的朋友可以參考下2024-12-12
Java Annotation(Java 注解)的實(shí)現(xiàn)代碼
本篇文章介紹了,Java Annotation(Java 注解)的實(shí)現(xiàn)代碼。需要的朋友參考下2013-05-05
Java中equals()方法重寫實(shí)現(xiàn)代碼
這篇文章主要介紹了Java中equals()方法重寫實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05
SpringBoot實(shí)現(xiàn)啟動(dòng)項(xiàng)目后立即執(zhí)行的方法總結(jié)
在項(xiàng)目開發(fā)中某些場(chǎng)景必須要用到啟動(dòng)項(xiàng)目后立即執(zhí)行方式的功能,所以這篇文章就來(lái)和大家聊聊實(shí)現(xiàn)立即執(zhí)行的幾種方法,希望對(duì)大家有所幫助2023-05-05
Java設(shè)計(jì)模式詳解之門面模式(外觀模式)
為子系統(tǒng)中的一組接口提供一個(gè)一致的界面, Facade 模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。本文給大家介紹Java設(shè)計(jì)模式詳解之門面模式(外觀模式),感興趣的朋友參考下吧2016-04-04

