手把手教你在Linux系統進行項目部署


手把手教你在Linux系統進行項目部署

百度網盤:https://pan.baidu.com/s/11wMIXT68GX7banf3Gaflrw (提取碼:lzt1)

GitHub:https://github.com/Newbie-Rookie/Project-deployment

已經將項目部署需要用到的工具放到網盤中和GitHub上

在進行項目部署前,你先需要擁有一台服務器、XShell軟件、XFtp軟件

(1) 服務器

上阿里雲、騰訊雲租一台即可,可以看看官網的最新活動的限時秒殺(騰訊雲),每天固定時間有優惠活動。

我目前用的是騰訊雲的雲服務器,學生有優惠https://cloud.tencent.com/act/campus(需要學生認證)

用購買服務器的賬號登錄服務器控制台(騰訊雲控制台),找到購買的雲服務器,進入實例

我們需要記住服務器初始登錄名為root,密碼我們進行重置密碼,更改為我們容易記住的密碼,用於登錄XShell和XFtp

我們還要記住公網IP

(2) XShell和XFtp

XShell是命令操作服務器上資源的軟件,XFtp是可視化操作服務器上資源的軟件。

官網下載XShell 7和XFtp 7即可,但目前不知道為什么進不去官網,我把軟件放網盤和github上,需要的自取。

① XShell連接雲服務器:

點擊該連接進行連接,需要再次輸入登錄名root和你所重置的密碼即可連接成功。

② XFtp連接雲服務器:

填寫雲服務器公網IP、登錄名和密碼,進行連接即可

以上將服務器、XShell和XFtp准備好后,我們就需要搭建項目運行環境,分四個步驟。

1、Linux安裝jdk8(或其他版本)

1.1 下載jdk8.0

Oracle官網:https://www.oracle.com/java/technologies/downloads/#java8

需要Oracle賬戶(百度搜索Oracle賬戶,嫖一個下載就ok)

下載:jdk-8u321-linux-x64.tar.gz(已為你們准備了jdk-8u311-linux-x64.tar.gz在網盤和GitHub中)

1.2 源代碼解壓

XFtp進入/usr/local,將jdk-8u311-linux-x64.tar.gz進去

以下在XShell中進行:

進入/usr/local,即jdk源代碼壓縮包位置:

cd /usr/local

解壓jdk源代碼壓縮包:

tar -zxvf jdk-8u311-linux-x64.tar.gz

刪除jdk源代碼壓縮包:

rm -f jdk-8u311-linux-x64.tar.gz

解壓成功:

1.3 配置jdk環境變量

/etc/profile文件的改變會涉及到系統的環境,也就是有關Linux環境變量的東西

所以,我們要將jdk配置到/etc/profile,才可以在任何一個目錄訪問jdk

vim /etc/profile

按i進入編輯,在profile文件尾部添加如下內容:

export JAVA_HOME=/usr/local/jdk1.8.0_311  #jdk安裝目錄
 
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}

添加后如下:

然后按Esc退出編輯,按:wq退出配置文件即可

通過命令source /etc/profile讓profile文件立即生效:

source /etc/profile

1.4 測試jdk是否安裝成功

javac

java -version

2、Linux安裝Tomcat

2.1 下載安裝包

我部署的項目中使用的是apache-tomcat-9.0.56,所以網盤和GitHub為你們准備了apache-tomcat-9.0.56.tar.gz

項目中使用的9及9以下版本都可以用,如果使用的是10以上版本,需要自己到官網下載,因為10以上版本的包名已經和9及9以下版本的包名不同,9及9以下版本

2.2 上傳文件/解壓

XFtp進入/usr/local,將apache-tomcat-9.0.56.tar.gz進去

解壓:

tar -zxvf apache-tomcat-9.0.56.tar.gz

重命名:

mv apache-tomcat-9.0.56 tomcat

刪除壓縮包:

rm -f apache-tomcat-9.0.56.tar.gz

解壓成功:

2.3 啟動tomcat

進入目錄tomcat的bin目錄:

cd /usr/local/tomcat/bin/

啟動:

./startup.sh

查看tomcat啟動效果:

在瀏覽器輸入公網IP + 8080 (8080默認端口)

這就表示成功在Linux上安裝了Tomcat。

3、Linux安裝MySQL

我的項目使用的是MySQL8.0,所以我安裝MySQL8.0

3.1 安裝前清理工作(卸載mysql)

3.1.1 清理原有的mysql數據庫

使用以下命令查找出安裝的mysql軟件包和依賴包:

rpm -pa | grep mysql

可能顯示結果如下:

mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64

使用以下命令依次刪除上面的程序:

yum remove 名字

刪除mysql的配置文件,卸載不會自動刪除配置文件,首先使用如下命令查找出所用的配置文件:

find / -name mysql

可能顯示結果如下:

/etc/selinux/targeted/active/modules/100/mysql
/usr/share/mysql
/usr/lib64/mysql

使用以下命令依次刪除上面的程序:

rm -rf 名字

3.1.2 刪除MariaDB的文件

由於MySQL在CentOS 7中收費了,所以已經不支持MySQL了,取而代之在CentOS7內部集成了mariadb,而安裝MySQL的話會和MariaDB的文件沖突,所以需要先卸載掉MariaDB.

使用rpm命令查找出要刪除的mariadb文件:

rpm -pa | grep mariadb

可能的顯示結果如下:
mariadb-libs-5.5.56-2.el7.x86_64  

rpm -e mariadb-libs-5.5.56-2.el7.x86_64  #刪除上面的程序

可能出現錯誤提示如下:

依賴檢測失敗:

libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

使用強制刪除:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

至此就將原來有的mysql 和mariadb數據庫刪除了。

3.2 安裝MySQL

目前我用的是騰訊雲CentOS 7.6 64位,將安裝MySQL8.0

由於從CentOS 7系統開始,MariaDB成為yum源中默認1的數據庫安裝包,如果我們的Linux操作系統為CentOS 7及以上版本,使用yum命令安裝MySQL包時可能將無法啟動MySQL,且自己從官網下載Linux系統的MySQL安裝包到Linux系統中也一樣,也會出現無法啟動MySQL服務的問題,我嘗試了許多方法,暫時沒有找到解決方法。

直到我發現了一篇博文的方法比較靠譜,而且嘗試可行:CentOS 7.6 安裝MySQL8.0

即手動下載mysql的Yum Repository

3.2.1 下載Yum Repository

到MySQL官網下載mysql的Yum Repository:MySQL Yum Repository

根據不同版本的CentOS系統進行下載,點擊Download,我的是Linux 7

使用XShell,連接服務器,用wget下載mysql的rpm包:

wget https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm

如上圖,則下載成功。

3.2.3 安裝MySQL(官網最新)

yum -y install mysql-community-server

最后結果如上圖,則安裝成功。

3.2.4 啟動mysql服務並查看mysql狀態

啟動mysql服務:

systemctl start mysqld.service

查看mysql狀態:

systemctl status mysqld.service

active表示mysql服務已啟動。

3.2.5 獲取mysql的root用戶初始密碼並修改

獲取root用戶初始密碼:

grep "password" /var/log/mysqld.log 

初始密碼先記住,最好復制,第一次登陸時要用,如果忘記,可以百度一下怎么無密碼登錄(在這里我就不講了)

因為安裝了Yum Repostiory,以后每次yum操作都自動更新,需要把這個卸載掉:

yum -y remove mysql80-community-release-el7-5.noarch

關閉和重啟mysql:

systemctl stop mysqld.service   #關閉mysql
service mysqld restart		    #重啟mysql

登錄root用戶並修改密碼:

mysql -uroot -p

回車后將剛剛生成的初始密碼復制進去,再回車即可

修改密碼:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';

如果出現以下錯誤:是密碼安全性未達到要求,你可以先設置比較復雜,你容易記的密碼先,因為第一次登陸必須先修改密碼才能進行其他操作

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

登陸之后,可查看MySQL完整的初始密碼規則:

SHOW VARIABLES LIKE 'validate_password%';

可以臨時修改validate_password.length和validate_password.policy的值,再設置較為簡單的密碼:

set global validate_password_length=4;
set global validate_password_policy=0;

這樣就可以通過上面的修改密碼語句將密碼修改為較為簡單的密碼。

3.2.6 設置遠程連接(Navicat)

use mysql;                   # 使用mysql數據庫
select user,host from user;  # 查看用戶及用戶登錄權限

上面表示的的四個用戶均只能本地登錄,不允許遠程登錄,所以我們需要新增用戶,並賦予遠程連接權限

(1)新增遠程連接用戶:

# CREATE USER '用戶名'@'主機' IDENTIFIED BY '密碼';
CREATE USER 'lzt'@'%' IDENTIFIED BY 'lzt';

(2)設置遠程連接權限

grant all privileges on *.* to 'lzt'@'%';

(3)刷新權限

flush privileges;

很多用戶在使用Navicat Premium 12(我就是用這個版本,不用破解,即下即用)連接MySQL數據庫時會出現Authentication plugin 'caching_sha2_password' cannot be loaded的錯誤。

出現這個原因是MySQL8.0之前的版本中加密規則是mysql_native_password,而MySQL8.0之后,加密規則是caching_sha2_password, 解決問題方法有兩種,一種是升級Navicat驅動(太麻煩),一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password

# 修改加密規則 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

# 更新用戶密碼 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';
ALTER USER 'lzt'@'%' IDENTIFIED WITH mysql_native_password BY '密碼';

4、項目部署

上面我們已將項目部署所需要的東西都准備好,現在我們只需要將我們的項目進行打包,由於我的項目使用了Maven,我將項目打包成war文件,然后將文件使用XFtp軟件放到Linux中/usr/local/tomcat/webapps中,即可通過 公網IP/端口(默認8080)/資源名 進行訪問:

到此項目部署完成(不同類型的項目進行部署會有差別,此項目部署較適用於JavaWeb項目、Maven項目)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM