阿裡雲伺服器部署 【若依】 前後端分離項目
文章目錄
-
- 一、域名解析
- 二、伺服器作業系統置空
- 三、部署方式
- 四、需安裝環境配置
- 五、Linux伺服器安裝相應内容(具體安裝步驟)
-
- (一)安裝JDK(3種方式)
-
- 使用Yum安裝(推薦)
- 使用rpm包安裝
- 使用JDK壓縮包(相對複雜,容易出錯)
- (二)安裝Maven
-
- 安裝(推薦方式)
- 解壓Maven
- 添加一對localRepository,用來添加本地倉庫路徑;
- 切換鏡像源
- 配置環境變量
- (三)安裝Mysql
-
- 安裝
- 安裝5個rpm,有安裝順序,依賴嵌套
- 修改密碼
- 為防火牆添加開放端口
- 更改mysql語言
- (四)安裝Nginx
-
- 安裝前環境檢測
- 下載下傳nginx
- 安裝nginx
- 配置防火牆
- 配置開機自啟動
- (五)安裝Redis
-
- 環境确認
- 下載下傳redis
- 解壓redis
- 安裝redis
- 啟動redis
-
- 1、直接啟動
- 2、指定redis.conf檔案啟動
- 檢視Redis是否正在運作
- 設定開機自啟動
- redis-cli
- 操作指令總結
- 六、啟動後端
-
- 首次啟動
- 重新開機後端
-
- 方式一:(傳統方式)
- 方式二:(如果會的話,建議此方式)
- 七、可能出現的問題
-
- 防火牆問題
- Nginx問題
一、域名解析
- 詳情參考:阿裡雲官網
二、伺服器作業系統置空
- 此處選擇的是CentOS 7.5 + 版本
- 詳情參考阿裡雲官網
三、部署方式
- 使用Redis + Nginx
四、需安裝環境配置
- JDK1.8+
- Maven3.6+
- Mysql(5.5.62+)
- Nginx(1.19.8)
- Redis(6.2.1)
- Tomcat
- …
五、Linux伺服器安裝相應内容(具體安裝步驟)
(一)安裝JDK(3種方式)
使用Yum安裝(推薦)
# 檢視是否有JDK環境
java -version
# 解除安裝現有環境
# (如果java -version出現-bash: /usr/local/java: No such file or directory可以省略此步驟)
rpm -qa | grep java
# .noarch檔案可以不用管,解除安裝下面四個
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.322.b06-1.el7_9.x86_64
# 這裡以openjdk8為例
yum install java-1.8.0-openjdk
#不想确認的帶上 -y
yum install -y java-1.8.0-openjdk
# 安裝完之後重新檢查一下環境
使用rpm包安裝
- Oracle JDK所有版本下載下傳
- OracleJDK8下載下傳
- Oracle官方站點下載下傳需要登入【百度一個】
将下載下傳的rpm包上傳到伺服器上
# rpm包的安裝指令
rpm -ivh 包全名
選項:
-i(install) 安裝
-v(verbose) 顯示詳細資訊
-h(hash) 顯示進度
--nodeps 不檢測依賴性
# 執行下面的指令安裝 (jdk-8u311-linux-x64.rpm替換成你目前要安裝的檔案名)
rpm -ivh jdk-8u311-linux-x64.rpm
# 安裝完檢查環境配置
java -version
使用JDK壓縮包(相對複雜,容易出錯)
- 清華大學鏡像源,好多内容可以從這裡面下載下傳,自行檢視
# 這裡使用wget指令下載下傳
wget -c https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz
下載下傳Oralce JDK(方式2 中有下載下傳位址)
# 解壓gz壓縮包 jdk-8u311-linux-x64.tar.gz替換為你目前實際的檔案名
tar -zxvf jdk-8u311-linux-x64.tar.gz
# 建立檔案夾 (你可以自己定義)
mkdir -p /usr/local/java/jdk1.8.0_311
# 複制jdk到上一步建立的檔案夾
cp -r ./jdk1.8.0_311/ /usr/local/java/
配置環境變量
# 編輯全局變量檔案
vim /etc/profile
# 将下載下傳的gz壓縮包上傳到伺服器并解壓
(PS:JAVA_HOME的 “/usr/local/java/jdk1.8.0_311” 為上一步建立的目錄,使用你當時建立的目錄名。)
export JAVA_HOME=/usr/local/java/jdk1.8.0_311
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
# 配置完之後儲存退出,重新開機一下檔案
source /etc/profile
(二)安裝Maven
安裝(推薦方式)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解壓Maven
tar -zxvf apache-maven-3.6.3-bin.tar.gz
添加一對localRepository,用來添加本地倉庫路徑;
切換鏡像源
# 修改settings.xml檔案(比對你自己的路徑)
vi /soft/apache-maven-3.6.3/conf/settings.xml
# 找到【mirrors】标簽對,【添加】一下代碼
<mirror> <!--阿裡雲倉庫-->
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror> <!--maven國内鏡像-->
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
配置環境變量
vi /etc/profile
#你的maven路徑
MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export PATH=${MAVEN_HOME}/bin:${PATH}
# 重新開機
source /etc/profile
# 檢視結果
mvn -version
(三)安裝Mysql
安裝
Centos7預設安裝 mariadb,為防止和MySQL沖突,需要先解除安裝。
# 檢視mariadb版本資訊
rpm -qa | grep mariadb
# 解除安裝(mariadb-libs-5.5.65-2.el7.x86_64這一個是根據你查到的版本資訊填寫,每個系統有差異)
sudo rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps
在雲伺服器裡下載下傳MySQL安裝包有兩種方式:
- wget 或 curl
- 還可以在官網下載下傳然後手動上傳**(不建議手動上傳)**
# 官網下載下傳位址(下載下傳完上傳即可)
https://dev.mysql.com/downloads/mysql/
# 下載下傳完,上傳,解壓
例:tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
# wget方式下載下傳
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
# curl方式下載下傳
curl -O https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
安裝5個rpm,有安裝順序,依賴嵌套
# 3個依賴包
rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.40-1.el7.x86_64.rpm
# 用戶端和服務端
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm
# 此步驟一般情況不用管,目前yum倉庫沒有包含mysql-server相關包時,才需要安裝。其實前面步驟隻要正确部署,就不存在yum倉庫沒有包含mysql-server相關包的情況。
(1)檢視yum倉庫有沒有包含mysql-server相關包:
yum whatprovides mysql-server
(2)沒有就安裝 mysql-server:
yum -y install mysql-server
- 在安裝第三個的時候如果出現
【libcrypto.so.10()(64bit) 被 mysql-community-libs-8.0.11-1.el7.x86_64 需要】類似的錯誤,要改變一下指令:
安裝的時候最好在root權限下安裝,需要在rpm包後面添加
--nodeps --force
- 在安裝第五個之前要先安裝
yum install libaio
修改密碼
MySQL剛安裝是沒有密碼的,需要初始化一個臨時密碼,再去修改。
# 生成臨時密碼
sudo mysqld --initialize
啟動mysql
systemctl start mysqld.service
檢視MySQL運作狀态,運作狀态如圖:
systemctl status mysqld.service
檢查一個叫 Active 的參數,如果狀态是
loaded
,代表啟動成功
不過要想進入MySQL還得先找出此時root使用者的密碼,通過如下指令可以在日志檔案中找出密碼:
切記:一定要把臨時密碼儲存下來
grep "password" /var/log/mysqld.log
如下指令進入資料庫:
輸入初始密碼,此時不能做任何事情,因為MySQL預設必須修改密碼之後才能操作資料庫:
其中‘new password’替換成你要設定的密碼,注意:密碼設定必須要大小寫字母數字和特殊符号(,/';:等),不然不能配置成功
執行以下指令開啟遠端通路限制(注意:下面指令開啟的IP是 192.168.1.1,如要開啟所有的,用%代替IP):
然後再輸入下面兩行指令
mysql> flush privileges;
mysql> exit
為防火牆添加開放端口
# 添加mysql端口3306和Tomcat端口8080
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重新加載
firewall-cmd --reload
更改mysql語言
mysql -uroot -p
# 登陸之後,輸入:
status
如果是
utf8
,就代表沒問題
如果是
latin1
,就到
/etc
目錄下的
my.cnf
檔案下修改一下檔案内容
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
儲存檔案後,重新開機mysql
service mysqld restart
安裝完成
(四)安裝Nginx
安裝前環境檢測
安裝之前先檢查有沒有C++,沒有的話安裝先安裝
安裝C++
//安裝c++
yum install gcc-c++ -y
//檢視版本
gcc -v
安裝ssl
yum install -y openssl openssl-devel
安裝zlib
yum install -y zlib zlib-devel
//檢視資訊
cat /usr/lib64/pkgconfig/zlib.pc
安裝pcre
yum install -y pcre pcre-devel
//檢視版本号
pcre-config --version
下載下傳nginx
nginx下載下傳位址
下載下傳解壓
tar -xvf nginx-1.20.2.tar.gz
安裝nginx
# 進入目錄
cd nginx-1.20.2
# 執行指令
./configure
# 執行make指令
make
# 執行make install指令
make install
檢視目錄
cd /usr/local/nginx
ls
啟動、關閉、重新開機nginx
cd /usr/local/nginx/sbin
# 啟動
./nginx
# 關閉
./nginx -s stop
# 重新開機
./nginx -s reload
配置防火牆
開放nginx所需的80端口
重新開機防火牆
驗證端口是否開放成功
firewall-cmd --zone=public --query-port=80/tcp
在浏覽器輸入你的伺服器IP位址,nginx預設端口是80,隻需要輸入IP位址即可!
配置開機自啟動
即在
rc.local
增加啟動代碼就可以了。
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
設定執行權限:
chmod 755 rc.local
(五)安裝Redis
環境确認
由于 redis 是用 C 語言開發,安裝之前必先确認是否安裝 gcc 環境(gcc -v),如果沒有安裝,執行以下指令進行安裝
yum install -y gcc
下載下傳redis
都知道伺服器可以使用
wget
指令直接聯網下載下傳 但是這個下載下傳路徑也很重要 是以一定要自己進入官網複制 網上很多教程都是直接給的一個下載下傳指令,但是那個指令裡面的版本不一定還在,是以必須要自己去複制一下這個下載下傳路徑,然後輸入
wget + 複制的下載下傳路徑
回車進行下載下傳
wget https://download.redis.io/releases/redis-7.0.8.tar.gz
如果報錯提示
Connecting to download.redis.io (download.redis.io)...Permission denied
,沒有權限,那就需要切換root使用者下載下傳
解壓redis
下載下傳完後使用解壓指令進行解壓
tar -zvxf redis-7.0.8.tar.gz
因為 redis一般放在
/usr/local/redis
路徑下 是以要使用指令将檔案移動過去 這裡我的檔案在opt下
mv /opt/redis-7.0.8 /usr/local/redis
cd
到
/usr/local
目錄下可以檢視到目前目錄已經多了一個 redis 子目錄
安裝redis
進入到redis目錄輸入make執行編譯指令
cd /usr/local/redis
make
make PREFIX=/usr/local/redis install
啟動redis
1、直接啟動
cd bin
./redis-server
2、指定redis.conf檔案啟動
從 redis 的源碼目錄中複制
redis.conf
到 redis 的安裝目錄
cp /opt/redis-6.2.5/redis.conf /usr/local/redis/bin/
修改
redis.conf
檔案,把
daemonize no
改為
daemonize yes
vi redis.conf
運作
./redis-server redis.conf
檢視Redis是否正在運作
ps -ef | grep redis
或者
ps -aux | grep redis
# 殺掉redis程序
kill 15376
設定開機自啟動
在
/etc
目錄下建立redis目錄
mkdir redis
将
/usr/local/redis/redis.conf
檔案複制一份到
/etc/redis
目錄下,并命名為
6379.conf
cp /usr/local/redis/redis.conf /etc/redis/6379.conf
将redis的啟動腳本複制一份放到
/etc/init.d
目錄下
cp /usr/local/redis/utils/redis_init_script /etc/init.d/redisd
設定redis開機自啟動, 先切換到
/etc/init.d
目錄下, 然後執行自啟指令
cd /etc/init.d
# 執行自啟指令
chkconfig redisd on
redis-cli
./redis-cli
是連接配接本地redis服務的一個指令,通過該指令後可以既可控制redis的腳本控制台
如果 Redis報錯:
-bash: redis-cli: command not found
将redis-cli拷貝到bin下,讓redis-cli指令可以在任意目錄下直接使用
cp /opt/redis-7.0.8/src/redis-cli.c /usr/local/redis/bin
操作指令總結
systemctl start redis.service #啟動redis服務
systemctl stop redis.service #停止redis服務
systemctl restart redis.service #重新啟動服務
systemctl status redis.service #檢視服務目前狀态
systemctl enable redis.service #設定開機自啟動
systemctl disable redis.service #停止開機自啟動
六、啟動後端
首次啟動
前端
建立一個檔案夾web,把項目打包,解壓,放到伺服器上即可
後端
- 在伺服器中建立一個檔案夾,把jar包傳進去
- 建立一個檔案,存放日志記錄
ruoyi_log.out
- 建立一個腳本,友善啟停項目(此步驟可選,可以不操作)
- 啟動項目即可;
# 啟動的是你的jar包名稱,
nohup java -jar ruoyi-admin.jar > ruoyi_log.out 2>&1 &
重新開機後端
方式一:(傳統方式)
- 過濾端口号
或者使用netstat -tnlp | grep :8090
檢視正在運作的程序号,重新開機服務的時候直接殺掉。ps -ef | grep java
- 然後執行
殺掉程序,重新啟動。Kill -9 程序号
方式二:(如果會的話,建議此方式)
使用腳本。
大概設計思路就是在腳本裡面執行外層的邏輯,先查詢程序号kill,在重新啟動
七、可能出現的問題
防火牆問題
通常情況下,CentOS 系統部署完成後,關閉并禁用防火牆。但有些特殊情況需要保持防火牆的啟用。
- 檢查防火牆開啟的端口
# 檢視開放端口
firewall-cmd --list-ports
- 參考指令
# 打開防火牆
systemctl start firewalld
# 啟用防火牆
systemctl enable firewalld
# 檢視已經開放的端口
firewall-cmd --list-ports
# 開啟指定端口
firewall-cmd --zone=public --add-port=[端口号]/[協定] --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone=<zone> # 指定 zone
--add-port=<portid>]/<protocol> # 端口id / 協定
--permanent # 永久開啟,不添加則重新開機失效
# 關閉指定端口
firewall-cmd --zone=public –remove-port=[端口号]/[協定] --permanent
firewall-cmd --zone=public –remove-port=80/tcp --permanent
# 檢視所有 zone ,預設有9個 zone
firewall-cmd --get-default-zones
# 重新加載防火牆 *重新加載過後才能生效
systemctl reload firewalld
# 測試端口是否開放成功
ssh -v -p [端口] [使用者名]@[ip]
ssh -v -p 8080 [email protected]
Nginx問題
- server 配置問題
- Vue打包之後路徑跳轉不到“location /”問題,需要單獨指向一個路徑
- 前後端分離項目,要寫兩個location,不要影響到業務的跨域
若依解決登入頁面驗證碼不出現檢查思路① Redis沒啟動
② 看一下浏覽器或者日志,有沒有調到接口,沒有的話檢查一下nginx反向代理,能不能跳轉過去,以及防火牆有沒有開相應的端口
到此為止