当前位置: 首页 > article >正文

开发者交流平台项目部署到阿里云服务器教程

本文使用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。

相关文章:

开发者交流平台项目部署到阿里云服务器教程

本文使用PuTTY软件在本地Windows系统远程控制Linux服务器&#xff1b;其中&#xff0c;Windows系统为Windows 10专业版&#xff0c;Linux系统为CentOS 7.6 64位。 1.工具软件的准备 maven&#xff1a;https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-m…...

Seed Edge- AGI(人工智能通用智能)长期研究计划

Seed Edge 是字节跳动豆包大模型团队推出的 AGI&#xff08;人工智能通用智能&#xff09;长期研究计划12。以下是对它的具体介绍1&#xff1a; 名称含义 “Seed” 即豆包大模型团队名称&#xff0c;“Edge” 代表最前沿的 AGI 探索&#xff0c;整体意味着该项目将在 AGI 领域…...

DeepSeek学术写作测评第二弹:数据分析、图表解读,效果怎么样?

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 针对最近全球热议的DeepSeek开源大模型&#xff0c;娜姐昨天分析了关于论文润色、中译英的详细效果测评&#xff1a; DeepSeek学术写作测评第一弹&#xff1a;论文润色&#…...

从单体应用到微服务的迁移过程

目录 1. 理解单体应用与微服务架构2. 微服务架构的优势3. 迁移的步骤步骤 1&#xff1a;评估当前单体应用步骤 2&#xff1a;确定服务边界步骤 3&#xff1a;逐步拆分单体应用步骤 4&#xff1a;微服务的基础设施和工具步骤 5&#xff1a;管理和优化微服务步骤 6&#xff1a;逐…...

Direct2D 极速教程(2) —— 画淳平

极速导航 创建新项目&#xff1a;002-DrawJunpeiWIC 是什么用 WIC 加载图片画淳平 创建新项目&#xff1a;002-DrawJunpei 右键解决方案 -> 添加 -> 新建项目 选择"空项目"&#xff0c;项目名称为 “002-DrawJunpei”&#xff0c;然后按"创建" 将 “…...

Lustre Core 语法 - 比较表达式

概述 Lustre v6 中的 Lustre Core 部分支持的表达式种类中&#xff0c;支持比较表达式。相关的表达式包括 , <>, <, >, <, >。 相应的文法定义为 Expression :: Expression Expression | Expression <> Expression | Expression < Expression |…...

C# 中 [MethodImpl(MethodImplOptions.Synchronized)] 的使用详解

总目录 前言 在C#中&#xff0c;[MethodImpl(MethodImplOptions.Synchronized)] 是一个特性&#xff08;attribute&#xff09;&#xff0c;用于标记方法&#xff0c;使其在执行时自动获得锁。这类似于Java中的 synchronized 关键字&#xff0c;确保同一时刻只有一个线程可以执…...

在win11系统笔记本中使用Ollama部署deepseek制作一个本地AI小助手!原来如此简单!!!

大家新年好啊&#xff0c;明天就是蛇年啦&#xff0c;蛇年快乐&#xff01; 最近DeepSeek真的太火了&#xff0c;我也跟随B站&#xff0c;使用Ollama在一台Win11系统的笔记本电脑部署了DeepSeek。由于我的云服务器性能很差&#xff0c;虽然笔记本的性能也一般&#xff0c;但是…...

03.01、三合一

03.01、[简单] 三合一 1、题目描述 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标&#xff0c;value表示压入的值。 构造函数会传入一个stackSize参数&#xf…...

【Super Tilemap Editor使用详解】(十五):从 TMX 文件导入地图(Importing from TMX files)

Super Tilemap Editor 支持从 TMX 文件(Tiled Map Editor 的文件格式)导入图块地图。通过导入 TMX 文件,你可以将 Tiled 中设计的地图快速转换为 Unity 中的图块地图,并自动创建图块地图组(Tilemap Group)。以下是详细的导入步骤和准备工作。 一、导入前的准备工作 在导…...

在FreeBSD下安装Ollama并体验DeepSeek r1大模型

在FreeBSD下安装Ollama并体验DeepSeek r1大模型 在FreeBSD下安装Ollama 直接使用pkg安装即可&#xff1a; sudo pkg install ollama 安装完成后&#xff0c;提示&#xff1a; You installed ollama: the AI model runner. To run ollama, plese open 2 terminals. 1. In t…...

低代码系统-产品架构案例介绍、明道云(十一)

明道云HAP-超级应用平台(Hyper Application Platform)&#xff0c;其实就是企业级应用平台&#xff0c;跟微搭类似。 通过自设计底层架构&#xff0c;兼容各种平台&#xff0c;使用低代码做到应用搭建、应用运维。 企业级应用平台最大的特点就是隐藏在冰山下的功能很深&#xf…...

编解码技术:最大秩距离码(Maximum Rank Distance Code)

最大秩距离码&#xff08;Maximum Rank Distance Code&#xff0c;简称MRD码&#xff09;是一类用于处理矩阵或线性空间中错误校正的编码。其主要特点是在矩阵数据结构中具备检测和纠正错误的能力&#xff0c;设计目标是实现给定矩阵尺寸和错误纠正能力下的最大可能码字数。MRD…...

Linux 4.19内核中的内存管理:x86_64架构下的实现与源码解析

在现代操作系统中,内存管理是核心功能之一,它直接影响系统的性能、稳定性和多任务处理能力。Linux 内核在 x86_64 架构下,通过复杂的机制实现了高效的内存管理,涵盖了虚拟内存、分页机制、内存分配、内存映射、内存保护、缓存管理等多个方面。本文将深入探讨这些机制,并结…...

python:taichi 绘制太极图

安装 pip install taichi pip install opencv-python pycairo where ti # -- taichi 高性能可视化 Demo 展览 ti gallery D:\Python39\Lib\site-packages\taichi\examples\algorithm\circle-packing\ 点击图片&#xff0c;执行 circle_packing_image.py 可见 编写 taijitu.py 如…...

Linux(19)——使用正则表达式匹配文本

新年快乐&#xff01; 目录 一、正则表达式&#xff1a; 二、通过 grep 匹配正则表达式&#xff1a; 三、查找匹配项&#xff1a; 一、正则表达式&#xff1a; 正则表达式使用模式匹配机制查找特定内容&#xff0c;vim、grep 和 less 命令都可以使用正则表达式&#xff0c;P…...

USB 3.1-GL3510-52芯片原理图设计

USB 3.1-GL3510-52芯片原理图设计 端口功能与兼容性物理层集成与性能电源相关特性充电功能其他特性原理图接口防护ESD 保护要求 GL3510-52是一款由Genesys Logic&#xff08;创惟科技&#xff09;研发的USB转换芯片&#xff0c;具有以下特点&#xff1a; 端口功能与兼容性 它…...

TCP是怎么判断丢包的?

丢包在复杂的网络环境中&#xff0c;是一种常见的现象。 TCP&#xff08;传输控制协议&#xff09;作为一种可靠传输协议&#xff0c;内置了多种机制来检测和处理丢包现象&#xff0c;从而保证数据的完整性和传输的可靠性。本文将介绍TCP判断丢包的原理和机制。 一、TCP可靠传…...

DevEco Studio 4.1中如何创建OpenHarmony的Native C++ (NAPI)程序

目录 引言 操作步骤 结语 引言 OpenHarmony的开发工具变化很快&#xff0c;有的时候你安装以前的教程进行操作时会发现界面和操作方式都变了&#xff0c;进行不下去了。比如要在OpenHarmony中通过NAPI调用C程序&#xff0c;很多博文&#xff08;如NAPI篇【1】——如何创建含…...

deepseek R1的确不错,特别是深度思考模式

deepseek R1的确不错&#xff0c;特别是深度思考模式&#xff0c;每次都能自我反省改进。比如我让 它写文案&#xff1a; 【赛博朋克版程序员新春密码——2025我们来破局】 亲爱的代码骑士们&#xff1a; 当CtrlS的肌肉记忆遇上抢票插件&#xff0c;当Spring Boot的…...

【PyQt5】数据库连接失败: Driver not loaded Driver not loaded

报错内容如下&#xff1a; 可以看到目前所支持的数据库驱动仅有[‘QSQLITE’, ‘QMARIADB’, ‘QODBC’, ‘QODBC3’, ‘QPSQL’, ‘QPSQL7’] 我在网上查找半天解决方法未果&#xff0c;其中有一篇看评论反馈是可以使用的&#xff0c;但是PyQt5的版本有点低&#xff0c;5.12…...

文献阅读 250128-Tropical forests are approaching critical temperature thresholds

Tropical forests are approaching critical temperature thresholds 来自 <Tropical forests are approaching critical temperature thresholds | Nature> 热带森林正在接近临界温度阈值 ## Abstract: The critical temperature beyond which photosynthetic machinery…...

使用 Redis List 和 Pub/Sub 实现简单的消息队列

使用 Redis List 和 Pub/Sub 实现简单的消息队列 Redis 本身不是专门的消息队列系统&#xff0c;但它提供了多种数据结构&#xff08;如 List、Pub/Sub、Stream&#xff09;来实现消息队列功能。根据不同的业务需求&#xff0c;可以选择不同的方式&#xff1a; 在 Redis 中&a…...

RockyLinxu9远程登录问题

不能远程登录的问题解决 因为安装时没有勾选root远程登录权限&#xff0c;默认不能远程登录&#xff0c;需要修改 vim /etc/ssh/sshd_confi# 找到PermitRootLogin prohibit-password # 修改为:PermitRootLogin yessystemctl restart sshd 关闭防火墙 systemctl status fire…...

DataWhale组队学习 leetCode task4

1. 滑动窗口算法介绍 想象你正在用一台望远镜观察一片星空。望远镜的镜头大小是固定的&#xff0c;你可以通过滑动镜头来观察不同的星区。滑动窗口算法就像这台望远镜&#xff0c;它通过一个固定或可变大小的“窗口”来观察数组或字符串中的连续区间。 滑动操作&#xff1a;就像…...

升级到Mac15.1后pod install报错

升级Mac后&#xff0c;Flutter项目里的ios项目运行 pod install报错&#xff0c; 遇到这种问题&#xff0c;不要着急去百度&#xff0c;大概看一下报错信息&#xff0c;每个人遇到的问题都不一样。 别人的解决方法并不一定适合你&#xff1b; 下面是报错信息&#xff1a; #…...

[c语言日寄]越界访问:意外的死循环

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

「蓝桥杯题解」蜗牛(Java)

题目链接 这道题我感觉状态定义不太好想&#xff0c;需要一定的经验 import java.util.*; /*** 蜗牛* 状态定义&#xff1a;* dp[i][0]:到达(x[i],0)最小时间* dp[i][1]:到达 xi 上方的传送门最小时间*/public class Main {static Scanner in new Scanner(System.in);static f…...

新时代架构SpringBoot+Vue的理解(含axios/ajax)

文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue&#xff08;前端&#xff09;axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 引言 我是一个喜欢知其然又知其所以然的…...

视频外绘技术总结:Be-Your-Outpainter、Follow-Your-Canvas、M3DDM

Diffusion Models专栏文章汇总:入门与实战 前言:视频Inpaint的技术很火,但是OutPaint却热度不高,这篇博客总结比较经典的几篇视频Outpaint技术。其实Outpaint在runway等工具上很火,可是学术界对此关注比较少,博主从这三年的顶会中找到了最具代表性的三篇论文解读。 目录 …...