目錄
一、安裝軟件
1. 安裝準備工作
1 Linux里的軟件安裝方式
2 上傳軟件到Linux
3 拍照虛擬機快照
2. 安裝JDK
1 卸載自帶jdk
2 解壓JDK
3 配置環(huán)境變量
4 測試JDK
3. 安裝Tomcat
1 解壓Tomcat
2 修改防火墻設置
3 測試Tomcat
啟動Tomcat
訪問Tomcat
查看Tomcat日志
4 關閉Tomcat
4. 安裝MySQL
1 卸載自帶MySQL
2 解壓安裝MySQL
3 初始配置MySQL
4 測試MySQL
5. 安裝lrzsz【了解】
1 安裝lrzsz
2 使用lrzsz
二、部署項目
1. 準備SpringBoot項目
2. 部署項目到Linux里
1 方式一:手動部署【推薦】
2 方式二:基于Shell自動部署【拓展了解】
1 把項目推送到gitee倉庫
2 在Linux里安裝git 并克隆項目
3 在Linux里安裝maven
4 運行Shell腳本實現(xiàn)自動部署
3 給CentOS設置靜態(tài)ip
三、補充JDK版本問題
一、安裝軟件
1. 安裝準備工作
1 Linux里的軟件安裝方式
在CentOS系列的Linux操作系統(tǒng)中,安裝軟件主要有以下四種方式:
2 上傳軟件到Linux
我們先統(tǒng)一把軟件上傳到Linux內(nèi)的/root/softwares
文件夾下
-
創(chuàng)建文件夾:
mkdir /root/softwares
-
切換到softwares文件夾內(nèi):
cd /root/softwares
-
在FinalShell里打開文件管理窗口
?????4.把軟件包拖拽到/root/softwares
文件夾里
3 拍照虛擬機快照
為了防止安裝軟件時出錯導致的各種問題,我們可以使用VMWare提供的快照功能。
快照,類似于游戲的存檔,一旦程序出錯,就可以使用快照進行恢復。
-
拍攝快照
如果后續(xù)安裝軟件過程中出錯了,就可以使用快照直接恢復環(huán)境:
2. 安裝JDK
1 卸載自帶jdk
某些Linux版本可能會自帶OpenJDK,如果有的話,我們需要先卸載掉,然后再安裝我們自己的JDK
-
查詢已安裝的JDK:
rpm -qa|grep "jdk"
如果查詢到了,會把軟件名稱給我們列出來;一行一個軟件名稱
-
查詢到幾個,就卸載幾個。如果一個都沒有查詢到,就不用執(zhí)行下一步了
-
卸載已安裝的JDK:
rpm -e --nodeps 軟件名稱
其中
軟件名稱
,是剛剛查詢結(jié)果中的軟件名稱。每執(zhí)行一次卸載命令,就卸載一個軟件;要卸載幾個,就執(zhí)幾次
2 解壓JDK
把我們剛剛上傳的jdk解壓出來
#切換到softwares文件夾里
cd /root/softwares
#解壓jdk程序包
tar -xvf jdk-8u181-linux-x64.tar.gz -C /usr/local/
3 配置環(huán)境變量
-
用 vim 打開
/etc/profile
配置文件:vi /etc/profile
-
在vim的普通模式下,按大寫的
G
會直接跳到文件的最后一行 -
在vim的普通模式下,按小寫的
o
,會在下一行開始輸入 -
粘貼以下內(nèi)容
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_181
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
-
按
Esc
鍵回到普通模式,按:wq
回車,保存并退出vim -
執(zhí)行命令:
source /etc/profile
,讓環(huán)境變量立即生效
4 測試JDK
安裝JDK完成之后,需要測試一下是否安裝成功。執(zhí)行以下命令,如果都能夠看到版本號,說明jdk是正常的:
-
java -version
-
javac -version
3. 安裝Tomcat
1 解壓Tomcat
#切換到softwares文件夾里
cd /root/softwares/
#把Tomcat解壓到/usr/local/文件夾里
tar -xvf apache-tomcat-8.5.32.tar.gz -C /usr/local/
2 修改防火墻設置
Linux的防火墻默認是啟動狀態(tài),并且默認不開放8080端口,這會導致其它電腦不能訪問Linux里的服務器。
所以需要開放8080端口,有以下兩種方案,任選一種就行:
#方案一:直接關掉防火墻,Linux不再攔截任何端口。操作簡單,但有安全隱患,所以生產(chǎn)環(huán)境不建議使用這種
#?? ?關閉防火墻
systemctl stop firewalld
#?? ?防火墻不再開機啟動
systemctl disable firewalld#方案二:不關閉防火墻,但是開放8080端口。開放一個端口就要配置一次。麻煩但更安全,所以生產(chǎn)環(huán)境建議使用這種
#?? ?開啟防火墻服務
systemctl start firewalld
#?? ?開放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#?? ?重載防火墻
firewall-cmd --reload
3 測試Tomcat
啟動Tomcat
#切換到Tomcat的bin目錄里
cd /usr/local/apache-tomcat-8.5.32/bin/
#啟動Tomcat
sh startup.sh
訪問Tomcat
在物理機的瀏覽器上,打開地址 http://虛擬機ip:8080
,如果能看到以下界面,說明Tomcat啟動成功了
查看Tomcat日志
如果Tomcat里部署了項目,項目運行中出現(xiàn)了異常,就需要查看日志文件了。那么如何查看Tomcat的日志呢?
Tomcat的運行日志,會保存到其安裝目錄下的logs文件夾里,日志文件名稱是catalog.out,所以查看日志的命令:
#分頁查看日志文件內(nèi)容。 如果日志文件內(nèi)容特別多,而你僅僅想看最新的日志,這種方式就不方便了
less /usr/local/apache-tomcat-8.5.32/logs/catalina.out
?
#查看日志文件尾部50行內(nèi)容(行數(shù)可以修改)
tail -n 50 /usr/local/apache-tomcat-8.5.32/logs/catalina.out
4 關閉Tomcat
在Linux里,以下兩種方式都可以關閉Tomcat
方式一:運行關閉腳本
#切換到Tomcat的bin目錄里
cd /usr/local/apache-tomcat-8.5.32/bin
#運行關閉腳本
sh shutdown.sh? ? ? ?
方式二:殺掉Tomcat進程
#找到tomcat進程號。如下圖所示,進程號是94273
ps -ef | grep tomcat
#殺掉對應進程
kill -9 94273
4. 安裝MySQL
1 卸載自帶MySQL
某些Linux改造版會自帶Linux軟件,我們需要先把它們卸載掉
-
查找軟件
要卸載哪些軟件,需要先知道軟件的名稱。我們通過以下命令,查找已安裝的軟件名稱
rpm -qa | grep "mysql"
rpm -qa | grep "mariadb"
如下圖所示,沒有找到mysql軟件,但是找到了 mariadb,需要把它卸載掉
-
卸載軟件
執(zhí)行卸載命令,其中軟件名稱要復制粘貼,不要手寫,容易寫錯:
rpm -e --nodeps 軟件名
2 解壓安裝MySQL
-
解壓MySQL程序包
#創(chuàng)建文件夾,用于放解壓后的MySQL程序包
mkdir /usr/local/mysql
#切換到softwares文件夾里
cd /root/softwares/
#把MySQL解壓到mysql文件夾里
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql/
安裝MySQL
#切換到mysql文件夾里(MySQL的安裝包在這里)
cd /usr/local/mysql/
#在線安裝net-tools。聯(lián)網(wǎng)自動安裝
yum install net-tools perl -y
#按照以下順序,依次安裝軟件。注意:不要調(diào)整以下命令的執(zhí)行順序,否則可能會安裝失敗
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
3 初始配置MySQL
修改MySQL配置文件
MySQL的配置文件中,有兩項需要修改:
-
字符集
MySQL默認使用的是latin1字符集,即iso-8859-1,這種字符集不支持中文。所以我們需要修改字符集
-
ssl安全協(xié)議
CentOS新版本中升級了ssl,會導致其它電腦連接CentOS里MySQL時,因ssl安全協(xié)議版本不匹配導致連接失敗
執(zhí)行以下命令(只要執(zhí)行一次即可,不要重復執(zhí)行),即可解決上述兩個問題:
#修改字符集:在 `/etc/my.cnf`文件的最后追加配置項 `character-set-server=utf8mb4`
echo "character-set-server=utf8mb4">>/etc/my.cnf
#禁用MySQL的ssl安全驗證
echo "skip-ssl">>/etc/my.cnf
啟動MySQL服務,并設置開機自啟
MySQL的服務還沒有啟動,需要啟動后才可以使用MySQL。
而MySQL服務默認不是開機自啟的,這意味著 每次啟動Linux,都需要手動啟動MySQL服務才可以使用MySql。所以我們設置MySQL服務為開機自啟
#啟動MySQL服務
systemctl start mysqld
#設置MySQL服務為開機自啟
systemctl enable mysqld
修改MySQL初始密碼
-
查看MySQL初始密碼
MySQL在安裝過程中,給root帳號生成了一個初始密碼在/var/log/mysqld.log
文件中,MySQL要求我們第一交登錄MySQL后必須修改密碼。
我們先執(zhí)行以下命令,查看初始密碼
cat /var/log/mysqld.log | grep password
修改MySQL的root密碼
在 mysql>
后邊,依次輸入以下SQL語句并執(zhí)行
#設置密碼長度允許4位
set global validate_password_length=4;
#設置允許使用弱口令
set global validate_password_policy=LOW;
#設置當前用戶(root)的密碼為root
set password = password('root');
#設置root帳號允許遠程登錄,且遠程登錄密碼也是root
grant all on *.* to 'root'@'%' identified by 'root';
#刷新權限
flush privileges;
#退出MySQL命令行界面
exit;
修改防火墻設置
MySQL使用3306端口,默認也會被Linux的防火墻攔截。所以我們?nèi)匀挥袃煞N選擇可以開啟3306端口,任選一種即可:
#方案一:直接關掉防火墻,Linux不再攔截任何端口。操作簡單,但有安全隱患,所以生產(chǎn)環(huán)境不建議使用這種
#?? ?關閉防火墻
systemctl start firewalld
#?? ?防火墻不再開機啟動
systemctl disable firewalld#方案二:不關閉防火墻,但是開放8080端口。開放一個端口就要配置一次。麻煩但更安全,所以生產(chǎn)環(huán)境建議使用這種
#?? ?開啟防火墻服務
systemctl start firewalld
#?? ?開放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#?? ?重載防火墻
firewall-cmd --reload
4 測試MySQL
在物理機上,使用任意MySQL客戶端(navicat,SQLyog,dbeaver,datagrip)連接Linux里的MySQL測試一下。如果能連接,說明MySQL已經(jīng)安裝完成
5. 安裝lrzsz【了解】
lrzsz 是用于在Linux系統(tǒng)中文件上傳下載的軟件。當我們使用遠程工具連接上Linux之后,借助lrzsz工具,可以在自己的電腦和Linux之間進行文件傳輸。
大家可能會存在疑問,我們用finalShell圖形化界面就可以很方便的完成上傳下載,為什么還要使用這個軟件來完成上傳下載呢?
實際上是因為,Linux的遠程連接工具有很多,finalShell只是其中的一種,還有某些遠程連接工具并沒有上傳下載的功能,這個時候就需要依賴于lrzsz這個軟件了。
1 安裝lrzsz
執(zhí)行命令: yum install lrzsz.x86_64 -y
2 使用lrzsz
lrzsz主要包含了兩個命令:
-
rz
:用于讓Linux系統(tǒng)接收(receive)一個文件(即:我們要把一個本機上的文件 上傳到 Linux)執(zhí)行命令
rz
,會彈出一個窗口,選擇一個文件會上傳到Linux的當前文件夾里
sz
:用于讓Linux系統(tǒng)發(fā)送(send)一個文件(即:我們要把Linux上的一個文件 發(fā)送到 本機)
如果命令sz 文件路徑
,會把文件傳輸?shù)轿锢頇C里
二、部署項目
1. 準備SpringBoot項目
為了演示項目部署,我們準備一個簡單的SpringBoot項目,只要有最簡單的功能,用于演示項目部署的過程即可。
可以使用資料里的《示例項目/day02-demo》,項目已經(jīng)打包成jar:
2. 部署項目到Linux里
1 方式一:手動部署【推薦】
使用FinalShell或WindTerm(使用rz命令也行),把bootapp.jar上傳到Linux內(nèi)的 /root/app文件夾里
-
先在Linux里創(chuàng)建文件夾:
mkdir /root/app
-
然后把bootapp.jar上傳到Linux的
/root/app
文件夾里
在CentOS里直接使用命令啟動bootapp.jar即可
#切換到bootapp.jar所在的文件夾
cd /root/app
#啟動bootapp.jar。如果關閉了客戶端終端窗口,服務就結(jié)束了
java -jar bootapp.jarnohup java -jar bootapp.jar &
打開瀏覽器,輸入地址:http://192.168.200.135:8080/hello。如果能夠看到如下響應結(jié)果,就說明項目已經(jīng)部署成功了
2 方式二:基于Shell自動部署【拓展了解】
剛剛我們是手動把項目部署到Linux中,整個部署過程的每一步,都需要由自己操作實現(xiàn)。一旦項目的環(huán)境復雜一點,就會導致項目部署過程非常繁瑣,且容易出錯。
我們可以使用Shell腳本,實現(xiàn)自動化部署,把整個部署過程規(guī)范下來,后續(xù)如果需要部署項目,只要運行一個腳本,就能實現(xiàn)一鍵部署。
我們這里實現(xiàn)自動部署的流程如下:
-
在本機上開發(fā)項目,編寫項目代碼。然后把代碼推送push到git共享倉庫,比如Gitee
-
在Linux服務器里(使用Shell腳本自動實現(xiàn))
-
使用git從gitee中克隆拉取代碼
-
使用maven編譯并打包項目代碼
-
使用命令,啟動項目
-
1 把項目推送到gitee倉庫
1)創(chuàng)建gitee倉庫
目前gitee允許直接創(chuàng)建開源倉庫,所以我們直接選擇“開源”倉庫即可
2 在Linux里安裝git 并克隆項目
#安裝git軟件。注意:需要聯(lián)網(wǎng)
yum install git -y
#驗證git是否安裝成功。執(zhí)行以下命令,如果能夠查到git的版本號,就說明git安裝成功了
git version#切換到~/app
cd ~/app
#克隆項目代碼
git clone https://gitee.com/liuyp100/bootapp.git
#驗證有沒有克隆到項目代碼。查看當前目錄下,有沒有名稱為bootapp的文件夾,如果有,說明克隆成功了
ls
3 在Linux里安裝maven
-
把maven軟件上傳到Linux的
~/softwares
文件夾里 -
把本地倉庫《repo》上傳到Linux的
/usr/local
文件夾里
3. 然后解壓maven,并配置環(huán)境變量
#切換到softwares文件夾里,因為maven軟件上傳到了這里
cd ~/softwares
#解壓maven
tar -xvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
#配置maven環(huán)境變量(下面2行命令,只要執(zhí)行一次即可,不要重復執(zhí)行)
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.5.4'>>/etc/profile
echo 'export PATH=$MAVEN_HOME/bin:$PATH'>>/etc/profile
source /etc/profile
#驗證maven是否配置成功。執(zhí)行以下命令,如果能看到maven版本號,說明配置成功
mvn -v
4. 設置maven本地倉庫和阿里云倉庫鏡像
#切換到maven配置文件所在的文件夾
cd /usr/local/apache-maven-3.5.4/conf
#使用vi打開配置文件,然后按下圖配置本地倉庫:在settings標簽里增加localRepository標簽,配置本地倉庫路徑
vi settings.xml
本地倉庫配置如下圖:<localRepository>/usr/local/repo</localRepository>
阿里云倉庫鏡像配置如下:
<mirror>
? ? <id>alimaven</id>
? ? <mirrorOf>central</mirrorOf>
? ? <name>aliyun maven</name>
? ? <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
4 運行Shell腳本實現(xiàn)自動部署
Shell腳本,是Linux系統(tǒng)里的腳本,類似于Windows系統(tǒng)里的cmd(或bat)腳本。我們這里使用Shell腳本可以實現(xiàn)項目的自動化部署。
但Shell腳本不是我們學習的重點,所以不用自己編寫,直接使用資料里提供好的腳本文件《bootStart.sh》即可
操作步驟如下:
-
把bootStart.sh文件上傳到
~/app
目錄下 -
運行shell腳本
#切換到當前用戶的家目錄
cd ~/app
#修改腳本的權限
chmod 777 bootStart.sh
#運行Shell腳本
sh bootStart.sh
? ?3. 打開瀏覽器,輸入地址 http://192.168.200.135:8080/hello,如果頁面上能看到hello,就表示項目部署成功了
3 給CentOS設置靜態(tài)ip
我們目前的虛擬機里安裝的CentOS,使用的都是動態(tài)ip:由虛擬機根據(jù)dhcp協(xié)議動態(tài)獲取ip地址。這意味著CentOS虛擬機的ip地址,是有可能變化的,它會導致我們訪問項目的地址也不得不隨之變化。
為了更方便的訪問項目,我們可以把虛擬機CentOS設置為靜態(tài)ip
-
先查詢一下虛擬機CentOS的ip地址
? ? ?2. 打開網(wǎng)卡配置文件,執(zhí)行命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
在vi里,修改網(wǎng)卡配置:
? 3. 重啟網(wǎng)絡服務,執(zhí)行命令:systemctl restart network
如果不重啟網(wǎng)絡服務,剛剛修改的網(wǎng)卡配置就不會立即生效
因為CentOS里已經(jīng)安裝了比較多的軟件,為了避免ip變化對其它軟件的影響,可以reboot
重啟一下
三、補充JDK版本問題
不同JDK版本,有不同的語法。新版本通常會增加一些新的語法或類,也會清除一些過時的類和語法
高版本JDK編譯出來的Class,不能在低版本JRE環(huán)境里運行。比如
-
有一個demo.war,使用JDK11編譯然后打包的
-
然后把這個war包部署到Linux里。而Linux安裝的JDK是1.8,出現(xiàn)問題:文章來源:http://www.zghlxwxcb.cn/news/detail-854990.html
demo.war不能正常運行文章來源地址http://www.zghlxwxcb.cn/news/detail-854990.html
到了這里,關于Linux02(項目部署,手動和自動部署,JDK版本問題,安裝軟件,安裝軟件,安裝JDK,Tomcat,MySQL,Irzsz)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!