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

本文使用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.mzph.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…