開發者交流平臺項目部署到阿里云服務器教程

本文使用PuTTY軟件在本地Windows系統遠程控制Linux服務器;其中,Windows系統為Windows 10專業版,Linux系統為CentOS 7.6 64位。

1.工具軟件的準備

maven:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

tomcat:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz

elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz

elasticsearch-analysis:https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-6.4.3.zip

kafka:https://archive.apache.org/dist/kafka/2.3.0/kafka_2.12-2.3.0.tgz

mysql80:http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

以上工具軟件可直接在linux服務器上使用命令下載:

wget+以上鏈接

也可以在本地windows系統下載好之后通過windows命令行傳文件到linux服務器:

Win+R→cmd→轉到文件所在的盤符,比如D:

然后再cd到文件所在目錄;

在所需要上傳的文件所在目錄使用命令:

pscp [文件名] linux用戶名@服務器公網IP地址:在Linux系統保存的地址

比如

pscp community-init-sql-1.5.zip root@x.x.x.x:/root

2. 安裝unzip

cd /yum list unzip*yum install -y unzip.x86_64

3.下載JDK1.8

yum list java*yum install -y java-1.8.0-openjdk.x86_64java -version

4.安裝Maven

tar -xzvf apache-maven-3.6.1-bin.tar.gz -C /optcd /opt/apache-maven-3.6.1/binvim /etc/profile

輸入i進入INSERT模式之后在

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

的后一行增加

export PATH=$PATH:/opt/apache-maven-3.6.1

(可直接按右鍵粘貼)之后,按【Esc】→【:wq】保存退出。

接下來啟用和查看maven版本:

source /etc/profile
mvn -version

5.Maven配置阿里云鏡像

cd confvim settings.xml

輸入i進入INSERT模式之后在之間增加以下代碼

<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/central</url>
</mirror>

(可直接按右鍵粘貼)之后,按Esc】→【:wq】保存退出。

6.安裝 MySQL

cd /root
yum install -y mysql80-community-release-el7-3.noarch.rpm
cd /
yum list mysql*
yum install -y mysql-community-server.x86_64

如果出現GPG Keys相關問題,執行以下命令

yum -y install mysql-community-server --nogpgcheck

接下來再啟動MySQL

systemctl start mysqld

查看MySQL的狀態

systemctl status mysqld

查看MySQL的密碼,用于下一步修改密碼前的登錄操作

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

修改MySQL的密碼

mysql -u root -p
alter user root@localhost identified by 'XXXXXX';exit

注意

"XXXXXX"為密碼,按需修改。

重新登錄

mysql -u root -p

exit

給MySQL導入數據

cd /root
unzip -d /root/community-init-sql-1.5 community-init-sql-1.5.zipmysql -u root -p
create database community;
use community;
source /root/community-init-sql-1.5/init_schema.sql;
source /root/community-init-sql-1.5/init_data.sql;
source /root/community-init-sql-1.5/tables_mysql_innodb.sql;
show tables;

注意

其中,”community-init-sql-1.5“按需修改。

修改header_url路徑中含localhost的圖片

select id,username,header_url from user;
update user set header_url = 'http://images.nowcoder.com/head/180t.png' where header_url like '%localhost%';exit

注意:其中,”180t“按需修改。

7.安裝Redis

cd /
yum list redis*
yum install -y redis.x86_64
redis: systemctl start redis
systemctl status redisexit

8.安裝Kafka

cd /roottar -xzvf kafka_2.12-2.3.0.tgz -C /optcd /opt/kafka_2.12-2.3.0bin/zookeeper-server-start.sh -daemon config/zookeeper.propertiesnohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &

測試是否成功啟動Kafka

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

9.安裝ElasticSearch

cd /root
tar -xzvf elasticsearch-6.4.3.tar.gz -C /opt
unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zipcd /opt/elasticsearch-6.4.3/config
vim elasticsearch.yml

輸入i進入INSERT模式之后:

設置集群名字

cluster.name: nowcoder

設置路徑

path.data: /tmp/elastic/datapath.logs: /tmp/elastic/logs

然后,按【Esc】→【:wq】保存退出。

修改jvm設置

vim jvm.options

輸入i進入INSERT模式之后:

設置

-Xms256m
-Xmx512m

然后,按【Esc】→【:wq】保存退出。

啟動Elasticsearch

groupadd nowcoder
useradd nowcoder1 -p xxxxxx -g nowcoder
cd /opt
chown -R nowcoder1:nowcoder *
cd /tmp
chown -R nowcoder1:nowcoder *
su - nowcoder1cd /opt/elasticsearch-6.4.3/bin/elasticsearch -d

注意:"xxxxxx"為密碼,按需修改。

切換為root用戶,測試是否啟動成功

su -curl -X GET "localhost:9200/_cat/health?v"

10.安裝Wkhtmltopdf

cd /
yum list wkhtmltopdf*
yum install -y wkhtmltopdf.x86_64

安裝虛擬gui程序,并使用命令行測試

yum list *xvfb*
yum install -y xorg-x11-server-Xvfb.x86_64cd /root
mkdir test
cd test
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage https://www.baidu.com 1.png

使用腳本測試

cd /opt
vim wkhtmltoimage.sh

輸入i進入INSERT模式之后:

添加以下代碼:

xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@"

然后,按【Esc】→【:wq】保存退出。

chmod +x wkhtmltoimage.sh
cd /root/test
/opt/wkhtmltoimage.sh https://www.baidu.com 2.png

11.安裝Tomcat

cd /root
tar -xzvf apache-tomcat-9.0.22.tar.gz -C /opt
cd /opt/apache-tomcat-9.0.22/binvim /etc/profile

輸入i進入INSERT模式之后,在步驟4中Maven的path后面追加:

export PATH=$PATH:/opt/apache-tomcat-9.0.22/bin

然后,按【Esc】→【:wq】保存退出。

source /etc/profile

啟動Tomcat:

startup.sh

12.安裝Nginx

cd /
yum list nginx*
yum install -y nginx.x86_64vim /etc/nginx/nginx.conf

輸入i進入INSERT模式之后,將以下代碼塊使用"#"注釋掉:

    server {listen       80;listen       [::]:80;server_name  _;root         /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}

然后,添加以下代碼塊:

upstream myserver {server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
}server {listen 80;server_name XXX.XXX.XXX.XXX;location / {proxy_pass http://myserver;}
}

然后,按【Esc】→【:wq】保存退出。

注意

"XXX.XXX.XXX.XXX"按需修改為服務器的公網IP地址。

啟動Nginx

systemctl start nginx

關閉Tomcat,將Tomcat目錄下的webapps文件夾下的內容刪除

shutdown.shcd /opt/apache-tomcat-9.0.22/webappsrm -rf *

13.項目部署

在Windows系統中將項目的pom.xml,application.properties,global.js,HomeController.java相關文件進行修改之后,將target文件夾進行刪除,之后將項目工程文件進行壓縮,通過Windows命令行窗口上傳到linux服務器:

pscp community.zip root@x.x.x.x:/root

解壓

cd /root
unzip -d /root/community community.zip

打包

cd community
mvn package -Dmaven.test.skip=true

注意

第一次:

mvn clean package -Dmaven.test.skip=true

第二次可以這樣寫:

mvn package -Dmaven.test.skip=true

如果出現如下報錯

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

輸入命令

yum install java-devel

重新打包

mvn package -Dmaven.test.skip=true

復制ROOT.war到Tomcat中,再啟動Tomcat

cd target/
mv ROOT.war /opt/apache-tomcat-9.0.22/webapps/startup.sh

注意事項

服務器重啟之后,需要重新開啟MySQL,Kafka,Redis,Elasticsearch,Nginx,再重新打包ROOT.war到Tomcat中,最后再啟動Tomcat。

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

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

相關文章

汽車定速巡航

配備定速巡航功能的車型&#xff0c;一般在方向盤附近設有4~6個按鍵&#xff08;可能共用鍵位&#xff09;。 要設置定速巡航&#xff0c;不僅需要方向盤上的按鍵&#xff0c;還要油門配合。 設置的一般流程&#xff1a; 開關&#xff1a;類似步槍上的“保險”&#xff0c;按…

C++11中array容器的常見用法

文章目錄 一、概述二、std::array的特點三、std::array的定義與初始化三、std::array的常用成員函數四、與 C 風格數組的互操作 一、概述 在 C11 中&#xff0c;std::array 是一個新的容器類型&#xff0c;它提供了一個固定大小的數組封裝。相比傳統的 C 風格數組&#xff0c;…

Vue 響應式渲染 - 待辦事項簡單實現

Vue 漸進式JavaScript 框架 基于Vue2的學習筆記 - Vue 響應式渲染 - 待辦事項簡單實現 目錄 待辦事項簡單實現 頁面初始化 雙向綁定的指令 增加留言列表設置 增加刪除按鈕 最后優化 總結 待辦事項簡單實現 頁面初始化 對頁面進行vue的引入、創建輸入框和按鈕及實例化V…

中文輸入法方案

使用了三年的自然碼雙拼&#xff0c;毫無疑問是推薦使用雙拼輸入法。 三年積累下來的習慣是&#xff1a; 1 自然碼方案 2 空格出字 字母選字 直到如今&#xff0c;想要做出改變&#xff0c;是因為這樣的方案帶來的痛點&#xff1a; 1 使用空格出字就無法使用輔助碼&#…

scrol家族 offset家族 client家族學習

Scroll 系列屬性 scrollTop & scrollLeft scrollTop: 返回元素的內容已向上滾動的部分的高度。scrollLeft: 返回元素的內容已向左滾動的部分的寬度。 scrollHeight & scrollWidth scrollHeight: 返回元素的實際高度&#xff0c;包括由于溢出而在屏幕上不可見的內容…

Python 函數魔法書:基礎、范例、避坑、測驗與項目實戰

Python 函數魔法書&#xff1a;基礎、范例、避坑、測驗與項目實戰 內容簡介 本系列文章是為 Python3 學習者精心設計的一套全面、實用的學習指南&#xff0c;旨在幫助讀者從基礎入門到項目實戰&#xff0c;全面提升編程能力。文章結構由 5 個版塊組成&#xff0c;內容層層遞進…

在Windows系統中本地部署屬于自己的大語言模型(Ollama + open-webui + deepseek-r1)

文章目錄 1 在Windows系統中安裝Ollama&#xff0c;并成功啟動&#xff1b;2 非docker方式安裝open-webui3下載并部署模型deepseek-r1 Ollama Ollama 是一個命令行工具&#xff0c;用于管理和運行機器學習模型。它簡化了模型的下載與部署&#xff0c;支持跨平臺使用&#xff0c…

React中的JavaScript語法

最近在看《深入淺出react和redux》。其實react-redux采用的單相流flux是對傳統mvc的一種改進&#xff0c;而Qt的qml遵循的是傳統mvc&#xff0c;已有類似flux的Qt-qml實現&#xff0c;比如&#xff1a;GitHub - benlau/quickflux: A Flux implementation for QML。為了更好理解…

ProGen生成功能蛋白序列

LLM在包括蛋白質設計等各種生物技術應用中展現出了潛力。ProGen是一種語言模型&#xff0c;它能夠生成在大型蛋白質家族中具有可預測功能的蛋白質序列&#xff0c;這類似于針對不同主題生成語法和語義正確的自然語言句子。該模型在來自超過19,000個家族的2.8億個蛋白質序列上進…

省級數字經濟發展水平數據(2011-2022年)-社科數據

省級數字經濟發展水平數據&#xff08;2011-2022年&#xff09;-社科數據https://download.csdn.net/download/paofuluolijiang/90028602 https://download.csdn.net/download/paofuluolijiang/90028602 數字經濟是指以數據資源為關鍵要素、以現代信息網絡為主要載體、以信息…

Leecode刷題C語言之跳躍游戲②

執行結果:通過 執行用時和內存消耗如下&#xff1a; int jump(int* nums, int numsSize) {int position numsSize - 1;int steps 0;while (position > 0) {for (int i 0; i < position; i) {if (i nums[i] > position) {position i;steps;break;}}}return steps…

《多線程基礎之條件變量》

【條件變量導讀】條件變量是多線程中比較靈活而且容易出錯的線程同步手段&#xff0c;比如&#xff1a;虛假喚醒、為啥條件變量要和互斥鎖結合使用&#xff1f;windows和linux雙平臺下&#xff0c;初始化、等待條件變量的api一樣嗎&#xff1f; 本文將分別為您介紹條件變量在w…

【信息系統項目管理師-選擇真題】2009上半年綜合知識答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 【第1題】【第2~3題】【第4題】【第5題】【第6題】【第7題】【第8題】【第9題】【第10題】【第11題】【第12題】【第13題】【第14題】【第15題】【第16題】【第17題】【第18題】【第19題】【第20題】【第21題】…

消息隊列篇--通信協議篇--TCP和UDP(3次握手和4次揮手,與Socket和webSocket的概念區別等)

1、TCP和UDP概述 TCP&#xff08;傳輸控制協議&#xff0c;Transmission Control Protocol&#xff09;和UDP&#xff08;用戶數據報協議&#xff0c;User Datagram Protocol&#xff09;都算是最底層的通信協議&#xff0c;它們位于OSI模型的傳輸層。*傳輸層的主要職責是確保…

mysql_store_result的概念和使用案例

mysql_store_result() 是 MySQL C API 中的一個函數&#xff0c;用于檢索一個完整的結果集到一個客戶端。當執行一個查詢&#xff08;通常是 SELECT 查詢&#xff09;并希望處理所有返回的數據時&#xff0c;可以使用此函數。 概念 mysql_store_result() 函數的原型如下&…

React Router v6配置路由守衛

首先準備好以下頁面 登錄頁&#xff1a;用戶可以在此頁面登錄。 受保護頁&#xff1a;只有登錄的用戶可以訪問&#xff0c;否則會重定向到登錄頁。 公共頁面&#xff1a;不需要鑒權&#xff0c;任何人都可以訪問。 1. 安裝依賴 首先&#xff0c;我們需要安裝 react-router-do…

打破傳統束縛:領略 Web3 獨特魅力

在互聯網發展的歷程中&#xff0c;我們見證了Web1和Web2的變遷。Web1是靜態信息的展示平臺&#xff0c;Web2則引領了社交互動和內容創作的繁榮&#xff0c;而如今&#xff0c;Web3作為新時代的互聯網架構&#xff0c;正逐漸展現出其獨特的魅力&#xff0c;帶領我們走向一個更加…

[論文總結] 深度學習在農業領域應用論文筆記14

當下&#xff0c;深度學習在農業領域的研究熱度持續攀升&#xff0c;相關論文發表量呈現出迅猛增長的態勢。但繁榮背后&#xff0c;質量卻不盡人意。相當一部分論文內容空洞無物&#xff0c;缺乏能夠落地轉化的實際價值&#xff0c;“湊數” 的痕跡十分明顯。在農業信息化領域的…

Linux 學習筆記__Day3

十八、設置虛擬機的靜態IP 1、VMware的三種網絡模式 安裝VMware Workstation Pro之后&#xff0c;會在Windows系統中虛擬出兩個虛擬網卡&#xff0c;如下&#xff1a; VMware提供了三種網絡模式&#xff0c;分別是&#xff1a;橋接模式&#xff08;Bridged&#xff09;、NAT…

QT+mysql+python 效果:

# This Python file uses the following encoding: utf-8 import sysfrom PySide6.QtWidgets import QApplication, QWidget,QMessageBox from PySide6.QtGui import QStandardItemModel, QStandardItem # 導入需要的類# Important: # 你需要通過以下指令把 form.ui轉為ui…