華為云L實例云服務器部署前后端分離項目全過程記錄

1、配置云服務器

https://blog.csdn.net/modaoshi51991/article/details/139547630

2、上傳前端項目并配置nginx

首先在前端項目運行以下代碼將項目打包
我遇到node.js和openssl兩個版本不兼容問題,更新版本依次解決即可

vue-cli-service build

看一下package.json文件里腳本配置里面對應的命令,運行那個

一般會把項目整個打包到dist文件里,然后上傳dist文件即可

> ruoyi@3.8.1 build:prod
> vue-cli-service build|  Building for production...Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10)at module.exports (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\util\createHash.js:135:53)at NormalModule._initBuildHash (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:417:16)at handleParseError (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:471:10)at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:503:5at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:358:12at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:373:3at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:214:10)at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:221:10)at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:236:3at runSyncOrAsync (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:130:11)at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:232:2)at Array.<anonymous> (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:205:4)at Storage.finished (C:\D\USERPROG\ruoyi-ui\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)at C:\D\USERPROG\ruoyi-ui\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
|  Building for production...C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:114throw e;^Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10)at module.exports (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\util\createHash.js:135:53)at NormalModule._initBuildHash (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:417:16)at handleParseError (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:471:10)at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:503:5at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:358:12at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:373:3at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:214:10)at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:221:10)at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:236:3at context.callback (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:111:13)at C:\D\USERPROG\ruoyi-ui\node_modules\cache-loader\dist\index.js:147:7at C:\D\USERPROG\ruoyi-ui\node_modules\graceful-fs\graceful-fs.js:61:14at FSReqCallback.oncomplete (node:fs:197:23) {opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],library: 'digital envelope routines',reason: 'unsupported',code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Browserslist: caniuse-lite is outdated. Please run:npx browserslist@latest --update-dbWhy you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating|  Building for production...Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10)at module.exports (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\util\createHash.js:135:53)at NormalModule._initBuildHash (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:417:16)at handleParseError (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:471:10)at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:503:5at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:358:12at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:373:3at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:214:10)at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:221:10)at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:236:3at runSyncOrAsync (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:130:11)at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:232:2)at Array.<anonymous> (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:205:4)at Storage.finished (C:\D\USERPROG\ruoyi-ui\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)at C:\D\USERPROG\ruoyi-ui\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:114throw e;^Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10)at module.exports (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\util\createHash.js:135:53)at NormalModule._initBuildHash (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:417:16)at handleParseError (C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:471:10)at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:503:5at C:\D\USERPROG\ruoyi-ui\node_modules\webpack\lib\NormalModule.js:358:12at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:373:3at iterateNormalLoaders (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:214:10)at C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:186:6at context.callback (C:\D\USERPROG\ruoyi-ui\node_modules\loader-runner\lib\LoaderRunner.js:111:13)at C:\D\USERPROG\ruoyi-ui\node_modules\cache-loader\dist\index.js:240:7at C:\D\USERPROG\ruoyi-ui\node_modules\neo-async\async.js:2830:7at done (C:\D\USERPROG\ruoyi-ui\node_modules\neo-async\async.js:2865:11)at C:\D\USERPROG\ruoyi-ui\node_modules\neo-async\async.js:2818:7at Array.<anonymous> (C:\D\USERPROG\ruoyi-ui\node_modules\cache-loader\dist\index.js:229:9) {opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],library: 'digital envelope routines',reason: 'unsupported',code: 'ERR_OSSL_EVP_UNSUPPORTED'
}Node.js v18.13.0

安裝 EPEL(Extra Packages for Enterprise Linux)存儲庫:

sudo yum install epel-release

安裝 Nginx:

sudo yum install nginx

啟動并啟用 Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

上傳dist文件到服務器指定目錄

scp -r ./dist/* username@your_server_ip:/var/ww/myapp

編輯 Nginx 配置文件以指向你的應用目錄:

sudo vi /etc/nginx/conf.d/myapp.conf

在配置文件中添加以下內容:

server {listen       80;server_name  your_domain_or_ip;//只需要將your_domain_or_ip改成服務器域名或者公網ip即可location / {root   /var/www/myapp;index  index.html;try_files $uri $uri/ /index.html;}# 轉發后端請求到 Tomcatlocation /backend/ {proxy_pass http://localhost:8080/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}# Serve gzipped files if availablegzip_static on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;gzip_proxied any;gzip_comp_level 6;gzip_buffers 16 8k;gzip_http_version 1.1;gzip_min_length 256;
}

測試 Nginx 配置文件的正確性:

sudo nginx -t

如果配置文件測試通過,重啟 Nginx:

sudo systemctl restart nginx

確保防火墻允許 HTTP 流量:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

在瀏覽器中訪問你的域名或服務器 IP,確保你的前端應用已經成功部署。
然后就可以通過http://your_eip訪問你的前端頁面了

3、下載jdk,tomcat、maven,mysql,打包后端項目,創建新數據庫,上傳后端項目并復制到tomcat目錄下

下載jdk

sudo dnf install java-1.8.0-openjdk-devel

驗證

java -version

使用 wget 命令下載 Tomcat 9.0.89:(需要到官網查看最新版本,替換里面的版本號)

cd /tmp
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz

將下載的壓縮包解壓到你想安裝的目錄,例如 /opt/tomcat:

sudo mkdir /opt/tomcat
sudo tar xvf apache-tomcat-9.0.89.tar.gz -C /opt/tomcat --strip-components=1

驗證

sudo systemctl status tomcat

在瀏覽器中打開 http://:8080,如果看到 Tomcat 歡迎頁面,說明 Tomcat 已成功安裝并運行。

下載maven

如果遇到yum的問題看如下文章解決

https://blog.csdn.net/modaoshi51991/article/details/139606895

打包java后端項目

使用 cd 命令切換到你的項目目錄。

cd C:\D\USERPROG\rear\RuoYi-Vue

運行 Maven 構建命令:

mvn clean package

下載mysql
如果遇到問題參考我的這篇文章

https://blog.csdn.net/modaoshi51991/article/details/139725384?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22139725384%22%2C%22source%22%3A%22modaoshi51991%22%7D

安裝 MySQL:

sudo yum install mysql-community-server -y

啟動 MySQL 服務:

sudo systemctl start mysqld

設置 MySQL 開機自啟動:

sudo systemctl enable mysqld

獲取 MySQL 臨時 root 密碼:

sudo grep 'temporary password' /var/log/mysqld.log

運行 MySQL 安全安裝向導:

sudo mysql_secure_installation

運行這個命令后,系統會提示你輸入臨時 root 密碼,然后進行一些安全配置:

Enter password for user root: 輸入臨時密碼 dw)<Zk*rs1b+
New password: 設置一個新的 root 密碼
Re-enter new password: 再次輸入新密碼以確認
Do you wish to continue with the password provided? (Press y|Y for Yes, any other key for No): 輸入 Y
Remove anonymous users? (Press y|Y for Yes, any other key for No): 輸入 Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No): 輸入 Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No): 輸入 Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No): 輸入 Y
登錄 MySQL:

mysql -u root -p

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35273.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第12集《大乘起信論》

請大家打開《講義》第二十四頁&#xff0c;卯三、總顯四種大義。 這一大科是講到心生滅門。生滅的因緣是依止阿賴耶識&#xff0c;阿賴耶識當中有兩種功能&#xff1a;一個是覺&#xff0c;一個是不覺。覺悟的功能又分成兩種&#xff1a;一個是始覺&#xff0c;一個是本覺。我…

解決SpringMVC使用MyBatis-Plus自定義MyBaits攔截器不生效的問題

自定義MyBatis攔截器 如果是SpringBoot項目引入Component注解就生效了&#xff0c;但是SpringMVC不行 import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.parameter.ParameterHandler; import org.apache.ibatis.executor.statement.StatementHandler; i…

亮數據,一款新的低代碼爬蟲利器!

在當今數據驅動型時代&#xff0c;數據采集和分析能力算是個人和企業的核心競爭力。然而&#xff0c;手動采集數據耗時費力且效率低下&#xff0c;而且容易被網站封禁。 我之前使用過一個爬蟲工具&#xff0c;亮數據&#xff08;Bright Data&#xff09; &#xff0c;是一款低…

力扣隨機一題 哈希表 排序 數組

博客主頁&#xff1a;誓則盟約系列專欄&#xff1a;IT競賽 專欄關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? 2491.劃分技能點相等的團隊【中等】 題目&#xff1a; 給你一個正整數數組…

【深海王國】小學生都能玩的單片機?零基礎入門單片機Arduino帶你打開嵌入式的大門!(9)

Hi?(?o?)?, 各位深海王國的同志們&#xff0c;早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督繼續為大家帶來系列——小學生都能玩的單片機&#xff01;帶你一周內快速走進嵌入式的大門&#xff0c;let’s go&#xff01; &#xff08;9&#x…

殷山:摩斯大模型隱私保護技術和應用探索

背景介紹 6月20日下午&#xff0c;“2024信通院數據智能大會”圓滿落幕&#xff0c;摩斯技術負責人殷山在論壇上分享了摩斯在大模型隱私保護技術和行業應用的探索。 殷山發表“大模型隱私保護”主題演講 摩斯技術負責人殷山在“數據智能安全主題論壇“上&#xff0c;帶來“大…

web學習筆記(六十八)項目總結

目錄 1.如何取到對象的第一項的鍵名 2.如何在鍵名不確定的情況下取到對象的第一項的值 3.如何獲取對象的長度 4.計算屬性和watch監聽監聽深層數據 5.樣式穿透 1.如何取到對象的第一項的鍵名 可以通過Object.keys將對象轉化為一個包含對象所有可枚舉屬性名的數組&#xff…

Java中的微服務架構實現方法

Java中的微服務架構實現方法 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在當今軟件開發的環境中&#xff0c;微服務架構已經成為了構建大型應用程序的主流…

NIVision-LabVIEW在灰度圖上畫圓

問題來源 在csdn上看到的這樣一個問題&#xff0c;好像也沒個正經答案&#xff0c;都用chatGPT回答&#xff0c;挺沒勁的。不說提供個vi源代碼&#xff0c;至少也來張截圖嘛。我想著問題也不難&#xff0c;就自己動動手吧。 代碼展示1 1、首先使用imaq ArrayToImage.vi創建了一…

java error ConcurrentModificationException 并發修改異常

ConcurrentModificationException 概述 這個異常在 Java 中通常發生在以下場景&#xff1a;當某個線程在遍歷一個集合&#xff08;如 ArrayList、HashMap 等&#xff09;的過程中&#xff0c;另一個線程嘗試修改這個集合的結構&#xff08;如添加、刪除元素&#xff09;&#…

java中處理RunTimeException類的方式

在Java中&#xff0c;RuntimeException是所有運行時異常的父類。一些常見的RuntimeException子類包括&#xff1a; NullPointerException&#xff08;空指針異常&#xff09;&#xff1a;當試圖訪問空對象的屬性或調用空對象的方法時拋出。IllegalArgumentException&#xff0…

sheng的學習筆記-AI-學習向量量化

AI目錄 sheng的學習筆記-AI目錄-CSDN博客 需要學習前置知識&#xff1a;聚類&#xff0c;可參考 sheng的學習筆記-AI-聚類(Clustering)-CSDN博客 什么是學習向量量化 “學習向量量化”&#xff08;Learning Vector Quantization&#xff0c;簡稱LVQ&#xff09;是試圖找到一…

【Android面試八股文】ViewHolder為什么要被聲明成靜態內部類?

文章目錄 ViewHolder為什么要被聲明成靜態內部類?1. 避免隱式引用導致的內存泄漏2. 提高性能3. 代碼可讀性和維護性實例代碼總結ViewHolder為什么要被聲明成靜態內部類? 將 ViewHolder 聲明為靜態內部類有幾個重要的原因,這樣做可以提高性能并避免潛在的內存泄漏。下面是詳…

Qt | 子類化 QStyle(Qt自帶圖標大全)

01、簡介 1、把繪制自定義部件外觀的步驟大致分為三大板塊,如下: ①、樣式元素:即指定需要繪制的圖形元素(比如焦點框、按鈕,工具欄等)。樣式元素使 用 QStyle 類中的一系列枚舉(共有 11 個枚舉)進行描述。 ②、樣式選項:包含了需要繪制的圖形元素的所有信息,比如包含…

Tomcat 下載部署到 idea

一、下載Tomcat Tomcat 是Apache 軟件基金會&#xff08;Apache Software Foundation&#xff09;下的一個核心項目&#xff0c;免費開源、并支持Servlet 和JSP 規范。屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發…

啟動VMWare虛擬機報錯

1. 無法打開內核設備“\\.\VMCIDev\VMX”: 操作成功完成。是否在安裝 VMware Workstation 后重新引導? 模塊“DevicePowerOn”啟動失敗。 未能啟動虛擬機。 解決辦法: 解決辦法: 將 Ubuntu 64 位.vmx 找到vmci0.present"TRUE"這行改成 vmci0.present "FAL…

wireshark工具獲取設備IP地址

背景&#xff1a; 一個網口抓包工具&#xff0c;主要是升級XX設備時候不知道網口的ip地址。每次需要一個一個試&#xff0c;比較麻煩。 使用步驟&#xff1a; 1、連接好XX設備與筆記本&#xff0c;在網絡連接里面找到以太網&#xff0c;沒有出現紅色X號&#xff0c;表示網線連…

文心一言 VS 訊飛星火 VS chatgpt (289)-- 算法導論21.3 2題

二、寫出使用路徑壓縮的 FIND-SET 過程的非遞歸版本。如果要寫代碼&#xff0c;請用go語言。 文心一言&#xff1a; 在并查集&#xff08;Union-Find&#xff09;數據結構中&#xff0c;路徑壓縮&#xff08;Path Compression&#xff09;是一種優化技術&#xff0c;用于減少…

智能倉儲:立體倉WCS設計

自動化立體倉庫簡稱高架倉庫&#xff0c;是采用高層貨架存放貨物&#xff0c;以巷道堆垛起重機為主&#xff0c;結合入庫出庫周邊設備來進行作業的一種倉庫。 立體倉主體由貨架、巷道式堆垛機、輸送機等組成。 電氣控制系統、上位監控系統&#xff08;Warehouse Control Syste…

【前后端實現】AHP權重計算

AHP權重計算&#xff1a; 需求&#xff1a;前端記錄矩陣維度、上三角值&#xff0c;后端構建比較矩陣、計算權重值并將結果返回給前端 比較矩陣構建 如果你想要根據上三角&#xff08;不包括對角線&#xff09;的值來構建對稱矩陣&#xff0c;那么你可以稍作修改上述的generate…