Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Echo 在 Linux 服务器上的部署

Echo 在 Linux 服务器上的部署

作者头像
飞天小牛肉
发布于 2021-02-26 06:17:30
发布于 2021-02-26 06:17:30
7.4K00
代码可运行
举报
文章被收录于专栏:飞天小牛肉飞天小牛肉
运行总次数:0
代码可运行

1. 环境配置

我购买的服务器是腾讯云的 CentOS 7.6 / 2 核 4 G,注意你的服务器内存不能小于 4G,否则无法支撑我们这个项目。需要在服务器上安装部署的组件如下图:

JRE

① 通过 yum 命令快速下载并安装 JRE:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y java-1.8.0-openjdk.x86_64

② 再下个东西:(不知道有啥用,但是不下后续 maven 打包的时候可能会出 bug)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y java-devel

Maven

① 下载 Maven 3.6.3:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -i -c https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

② 解压 Maven 到 opt 目录(一般安装程序都放在 opt 目录)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -zvxf apache-maven-3.6.3-bin.tar.gz -C /opt

③ 配置环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/profile

使其生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source /etc/profile

④ 查看是否完成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo $PATH

mvn -version

⑤ 将 Maven 的镜像修改为阿里的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt
cd apache-maven-3.6.1/
cd conf
vim settings.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <!--<mirrorOf>central</mirrorOf> -->
    <mirrorOf>*</mirrorOf>
</mirror>

MySQL

安装

① 下载并安装 MySQL 5.7 官方的 Yum Repository

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

② 使用上面的命令就直接下载了安装用的 Yum Repository,大概 25KB 的样子,然后就可以直接 yum 安装了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

③ 还需要安装 MySQL 的服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# yum -y install mysql-community-server

至此 MySQL 就安装完成了,然后是对 MySQL 的一些设置。

配置

① 首先启动 MySQL

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# systemctl start mysqld.service

② 查看 MySQL 运行状态:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# systemctl status mysqld.service

③ 此时 MySQL 已经开始正常运行,不过要想进入 MySQL 还得先找出此时 root 用户的密码,通过如下命令可以在日志文件中找出密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# grep "password" /var/log/mysqld.log

如下命令进入数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# mysql -uroot -p

输入初始密码,此时不能做任何事情,因为 MySQL 默认必须修改密码之后才能操作数据库。这里有个问题,新密码设置的时候如果设置的过于简单会报错:

原因是因为 MySQL 有密码设置的规范,具体是与 validate_password_policy 的值有关:

我们可以通过如下命令做相应的修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

此时密码就可以设置的很简单,例如 1234 之类的。修改密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

到此数据库的密码设置就完成了。

④ 但此时还有一个问题,就是因为安装了 Yum Repository,以后每次 yum 操作都会自动更新,需要把这个卸载掉:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch

这样才算真的完成了。

上传本地数据库文件

① 将本地的数据库文件(本项目的 sql 文件夹)压缩再上传到服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd E:\GreateCommunity

pscp -P 22 community-init-sql.zip root@1.15.127.74:/root

② 解压上传的数据库文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /root
unzip -d /root community-init-sql.zip

❝删除文件夹:rm rf -文件夹名字 ❞

③ 登录 MySQL 执行数据库文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u root -p

create database greatecommunity;

use greatecommunity;

source /root/inti_sql/文件名.sql/

Redis

① 通过 yum 命令下载并安装 Redis

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y redis.x86_64

② 启动 Redis

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start redis

③ 查看状态:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl status redis

Kafka

① 下载 Kafka 2.13-2.7.0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -i -c https://mirrors.bfsu.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz

② 解压到 opt 目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -zvxf kafka_2.13-2.7.0.tgz -C /opt

③ 启动 Zookeeper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt
cd kafka_2.13-2.7.0/
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

④ 启动 Kafka

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &

Elasticsearch

① 下载 Elasticsearch 6.4.3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -i -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz

② 解压到 opt 目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -zvxf elasticsearch-6.4.3.tar.gz -C /opt

③ 下载中文分词插件 elasticsearch-analysis-ik -6.4.3:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -i -c https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip

④ 解压中文分词插件到 elasticsearch 文件夹下的 plugins/ik/ 文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zip

⑤ 修改下 Elasticsearch 的配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt
cd elasticsearch-6.4.3/
cd config/
vim elasticsearch.yml

⑥ 再修改 jvm,默认占内存 1G,太大了,我的小服务器一共才 4G:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim jvm.options

⑦ 另外,Elasticsearch 不支持 root 用户启动,我们必须为其创建一个普通用户,并赋予相关权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/elasticsearch-6.4.3/
cd config/
groupadd normal
useradd normal1 -p 123456 -g normal

cd /opt
chown -R normal1:normal *
cd /tmp
chown -R normal1:echoer *

⑧ 使用普通用户 echoer1 启动 Elasticsearch:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - normal1
cd /opt/elasticsearch-6.4.3/
bin/elasticsearch -d

-d 表示在后端运行 ❞

⑨ 测试一下是否启动成功了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su - // 切回root用户
curl -X GET "localhost:9200/_cat/health?v"

Tomcat

① 下载 Tomcat

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -i -c https://downloads.apache.org/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz

② 解压 Tomcat 到 opt 目录(一般安装程序都放在 opt 目录)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -zvxf apache-tomcat-9.0.41.tar.gz -C /opt

③ 配置环境变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/profile

使其生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source /etc/profile

④ 启动 tomact

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
startup.sh

Nginx

① 通过 yum 命令快速下载并安装 Nginx:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y nginx.x86_64   

② 配置代理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/nginx/nginx.conf

③ 启动 Nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start nginx

2. 代码部署

服务器上项目必备的环境都部署完了,接下来就只需要把项目放上来就行了。

准备工作

① 首先,把 Tomcat 自带的项目删了:

② Tomcat 默认访问它自带的 ROOT 项目,如果要想访问它的其他项目,比如 echo,需要这样访问 1.15.127.74:8080/echo,有点别扭,我想直接通过 1.15.127.74:8080 访问。我们可以直接把项目打包命名为 ROOT 的 war 包(注意,项目默认是打成 jar 包的),修改下项目 pom.xml:

③ 上面也说了,TOMCAT 访问 ROOT 项目是不带项目名的,所以你可以看见我们项目的配置文件中的项目名是空的,还有 global.js)。

程序入口

Tomcat 本身就有一个 main 函数,我们的项目的本地入口也是一个 main 函数,这显然冲突了。所以我们需要添加一个非 main 函数的入口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 项目部署上线后的程序入口
 */
public class CommunityServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(CommunityApplication.class);
    }
}

多配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# profile(开发的时候改成 develop, 部署的时候就用 produce)
spring.profiles.active = produce

# logback
logging.path=classpath:logback-spring-${spring.profiles.active}.xml

修改下生产环境的部分配置(比如项目的本地地址需要改成公网 IP,本地的目录地址需要改成服务器上的目录地址)

上传项目

❝上传之前最好把没有用到的 import 去掉 ❞

① 在本地把项目文件夹压缩并上传到服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pscp -P 22 GreateCommunity.zip root@1.15.127.74:/root

② 在服务器上解压项目文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unzip -d /root GreateCommunity.zip

③ 打包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd GreateCommunity/
mvn package -Dmaven.test.skip=true

④ 移动打好的 war 包 ROOT 到 TOMCAT 目录下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd target/
mv ROOT.war /opt/apache-tomcat-9.0.41/webapps/

⑤ 启动 Tomcat

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
startup.sh

访问 http://1.15.127.74:8080/,大功告成 ?

⑥ 手动添加 3 个特殊用户:

  • SYSTEM:发通知
  • admin:管理员(删除帖子)
  • master:版主(置顶、加精帖子)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT INTO `user` VALUES (1,'SYSTEM','SYSTEM','SYSTEM','system@sina.com',0,1,NULL,'http://static.nowcoder.com/images/head/notify.png','2019-04-13 02:11:03'),(2,'admin','d2d5a85cc78dc580aaa8d5d0dafa0a79','0c7b1','admin@qq.com',1,1,'671f3fdb898e455997aec3d2bcb695a6','http://qnvxyvq1p.hd-bkt.clouddn.com/e531e57c933b4c71912fe5396b1881f0','2021-02-10 22:27:00'),
(3,'master','852e951a7398e9853feef981c22e15e7','3d196','master@qq.com',2,1,'3563733cece74ee4b61b86b0b375987c','http://qnvxyvq1p.hd-bkt.clouddn.com/71616bd74fd9418b8b27a67b059ee9e3','2021-02-10 22:29:03');
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 飞天小牛肉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Echo 在 Windows 环境下的部署
使用 IDEA 打开本项目,等待所有的依赖下载完毕。然后「修改配置文件中的信息为你自己的本地环境,直接运行是运行不了的」,而且相关私密信息我全部用 xxxxxxx 代替了。
飞天小牛肉
2021/02/26
6700
Echo 在 Windows 环境下的部署
修订版 | Echo 在 Windows 环境下的部署
使用 IDEA 打开本项目,等待所有的依赖下载完毕。然后修改配置文件中的信息为你自己的本地环境,直接运行是运行不了的,而且相关私密信息我全部用 xxxxxxx 代替了。
飞天小牛肉
2021/04/26
5210
修订版 | Echo 在 Windows 环境下的部署
Linux 服务器环境搭建
官网下载地址:https://www.oracle.com/java/technologies/downloads
默存
2024/03/22
2640
Linux 服务器环境搭建
Linux服务器安装JDK、Tomcat、MySQL和一些配置
        1.将本地安装包jdk-7u71-linux-x64.tar.gz拷贝到服务器/opt/java目录
sunonzj
2022/06/21
2.5K0
Linux服务器安装JDK、Tomcat、MySQL和一些配置
从零开始写项目第四篇【搭建Linux环境】
使用SSH连接Linux环境 经过十多天的时间,我的网站备案终于完成了…接下来我就收到了阿里云的邮件。它让我在网站首页的尾部添加备案号,貌似还需要去公安网站中再备案什么资料的。 2017年11月20日19:06:26在图书馆并没有带身份证、于是就得放一下了。 接下来,我就是要把我写的东西放在Linux下了。首先,我得连接Linux系统,通过阿里云的远程服务可以连接得到。 密码可以在阿里云中设置,用户名是root,开始的时候我并不知道用户名是root,看了一下子文档才知道… 然后阿里云文档中还说了可是使用ss
Java3y
2018/04/02
1.8K0
从零开始写项目第四篇【搭建Linux环境】
Docker篇之秒杀项目环境部署
后期要使用Canal,需要把MySQL的配置文件提取出来,所以要进行相关的配置文件的编写
Maynor
2021/12/06
5660
Linux 服务器环境搭建及配置[通俗易懂]
(4)、然后进行解压命令,将压缩包进行解压,解压完成之后,执行删除命令删除压缩包。
全栈程序员站长
2022/07/25
7.7K0
Linux 服务器环境搭建及配置[通俗易懂]
运维相关
服务器配置: 数据库rds、redis、nacos、nginx、node、git、域名、OSS、java、maven 安装Java\maven\nginx\Mysal JAVA yum install java-1.8.0-openjdk : java -version vim /etc/profile.d/java.sh JAVA_HOME=“/usr/lib/jvm/java-1.8.0-openjdk” source /etc/profile.d/java.sh 验证:echo $JA
六个周
2022/10/28
2.9K0
运维相关
Jenkins搭建自动化部署环境(基于github)
因为我用的win7系统,所以下载好后,在jenkins.war路径下,打开命令行,使用下面的命令运行jenkins。
秃头哥编程
2019/06/04
6730
Jenkins搭建自动化部署环境(基于github)
009.统一数据采集平台DBus-0.6.1安装部署
我的环境已经安装了Ambari-2.7.4.0+HDP-3.1.4.0大数据平台,已安装的组件的版本如下:
CoderJed
2020/11/12
2K0
009.统一数据采集平台DBus-0.6.1安装部署
CentOS服务器部署(YUM)
2) 下载新的CentOS-Base.repo 到/etc/yum.repos.d/
码客说
2019/10/22
3.2K0
搭建Jenkins+tomcat+maven+Gitlab持续部署/回滚系统
使用Jenkins拉取Gitlab上面代码使用Maven进行打包,在使用Jenkins里面规定好shell脚本进行发布/回滚
释然IT杂谈
2020/07/22
1.5K0
搭建Jenkins+tomcat+maven+Gitlab持续部署/回滚系统
就几条命令,一键学会Docker部署SpringBoot项目
我们的开源博客项目eblog已经更新完毕了。今天,我们使用docker的安装方式,来安装一下我们的项目,实验环境是centos 7系统上,本实验适用部署大部分Springboot项目。
java思维导图
2020/05/26
5860
RedHad 7.x服务器操作记录
(1)查看版本和内核 [root@master ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo) [root@master ~]# uname -a Linux master 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# (2)查看磁
程裕强
2022/05/06
2560
从0开始搭建一台服务器开发环境【中篇】
7,在浏览器输入:localhost 如果不配置端口:localhost :8080
终有链响
2024/07/29
1230
从0开始搭建一台服务器开发环境【中篇】
Linux 日常使用小记.
一、Oracle VirtualBox安装Linux7.0全屏设置 1. 点击菜单栏 设备 –> 分配光驱 –> 选择一个虚拟光盘,找到VirtualBox安装目录下的VBoxGuestAdditions.iso,加载此镜像。 2. 启动Linux系统并用root身份登入系统 3. 执行挂载命令,将虚拟光盘挂在到 /mnt/cdrom,如果没有cdrom目录,则先创建之。 mkdir /mnt/cdrom mount -t auto -r /dev/cdrom /mnt/cdrom  4. 复制脚本到/t
JMCui
2018/03/15
1.1K0
Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构。 2.开发提交Java源代码至Gitlab仓库。 3.手动获取Java源代码,然后使用Maven进行编译。 4.将编译后的War包部署至后端Tomcat集群。 5.通过浏览器访问测试,检测项目部署情况。 自动部署Java项目至Web集群 1.Jenkins安装Maven Integration插件,使其支持Maven项目构建。 2.Jenkins配置JDK路径以及Maven路径。 3.配置Build-->Maven编
非著名运维
2022/06/22
1.9K0
Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
使用Docker部署常用中间件
1.安装yum-utils,yum-utils提供了yum-config-manager管理工具
兜兜转转
2023/03/06
9160
基于 SpringBoot 开源社区系统,简单大方!
Echo 是一套前后端不分离的开源社区系统,基于目前主流 Java Web 技术栈(SpringBoot + MyBatis + MySQL + Redis + Kafka + Elasticsearch + Spring Security + ...),并提供详细的开发文档和配套教程。包含帖子、评论、私信、系统通知、点赞、关注、搜索、用户设置、数据统计等模块。
Java小咖秀
2022/04/04
5640
基于 SpringBoot 开源社区系统,简单大方!
Docker容器学习梳理--应用程序容器环境部署
关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用。 如果我们需要在Docker环境下部署tomcat、redis、mysql、nginx、php等应用服务环境,有下面三种方法: 1)根据系统镜像创建Docker容器,这时容器就相当于是一个虚拟机,进入容器内部署应用环境。 然后将这种应用容器提交为新的镜像,最后基于这种新的应用镜像创建容器,创建时做好端口映射,就可以在外部访问这些应用了。 2)直接通过docker pull拉取别人提交好的tomcat
洗尽了浮华
2018/01/23
2.4K0
Docker容器学习梳理--应用程序容器环境部署
相关推荐
Echo 在 Windows 环境下的部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验