仿牛客论坛项目部署总结

2023-05-16

📢 本文章通过实战记录相关问题以及提供解决方案。

👤 公众号:恩故事还在继续

目录

  • 1. 前言
  • 2. 部署项目需求
  • 3. 环境配置
    • 3.1 阿里云服务器
    • 3.2 本地文件上传到服务器
    • 3.3 MySQL配置与安装
    • 3.4 Maven配置与安装
    • 3.5 安装 JRE
    • 3.6 Kafka配置与安装
    • 3.7 Elasticsearch配置与安装
    • 3.8 Redis安装与配置
    • 3.9 Tomcat安装与配置
    • 3.10 Nginx安装与配置
    • 3.11 修改项目配置
    • 3.12 打包出现的问题解决方法
  • 4. 总结
  • 5. 说明

1. 前言

仿牛客网项目大致是从四月中旬六月中旬做完的,期间是花了零零散散的时间跟着视频一起
完成的,里面除了原有的功能之外还添加了自己的一些小功能。然后,7.19号想了下自己的
是得部署一下这样才显得有始有终,下面这个教程是我自己花了三天的时间记录了各种踩坑问题
我会一一的在下面详细介绍。

2. 部署项目需求

- 服务器
服务器这个按照课程里面的选择阿里云服务器,配置为: 2cpu 4g Centos 7.6
这里如果个人去买这个配置的服务器的话好贵,如果是新用户的话可以选择免费试用一个月
的套餐,这个足够你慢慢试错了。
- 需要安装的环境
MySQL、Maven、JRE、Kafka、Elasticsearch、Nginx、Redis、Tomcat

3. 环境配置

3.1 阿里云服务器

点击查看这个攻略: ​​​ ​阿里云服务器免费体验攻略

具体的一些配置你可以参考下这个up的教程,需要注意的是你只要看前面一部分就行,​​ ​如何配置阿里云服务器

3.2 本地文件上传到服务器

安装在 root 目录下: wget -i -c  + 下载链接地址
上传文件到服务器命令: pscp -P 22 init_sql.zip root@自己的:/root
安装一个解压工具: yum list unzip*
安装命令: yum install -y unzip.x86_64

3.3 MySQL配置与安装

MYSQL下载地址: https://dev.mysql.com/downloads/
复制下载链接: https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
然后使用下面这个命令下载到 root 下:
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 安装 MySQL
yum list mysql*
cd /root
ll
yum install -y mysql80-community-release-el7-3.noarch.rpm
在重新搜索下
cd /
yum list mysql*
安装
yum install -y mysql-community-server.x86_64   
补充:
如果是安装错了mysql版本可以这样卸载: https://blog.csdn.net/qq_42751248/article/details/110453238
上面还是没有解决直接看着这个方案
https://blog.csdn.net/qq_43674360/article/details/124695091
使用这个命令: yum install -y mysql-community-server.x86_64  --nogpgcheck
启动 mysql: systemctl start mysqld
查看状态: systemctl status mysqld 
查看数据库密码: grep 'password' /var/log/mysqld.log
重启 mysql
- 先切换到 bin 目录: cd /bin
- 输入命令: systemctl restart mysqld.service  
- 关闭 mysql: systemctl stop mysqld.service
修改 mysql 密码
- 登录进去: mysql -u root -p
- 修改密码: alter user root@localhost identified by '自己设置一个密码'; 比如(nowcoder_666)
导入 SQL 文件
cd /root
ll
解压我们上传的 init_sql.zip 文件: unzip -d /root init_sql.zip
创建一个数据库: create database community;
使用数据库: use community;
导入数据表: source /root/init_sql.sql;
查看数据表: show tables;
修改用户表
- select id, username, header_url from user;
- 修改一些为 localhost路径的图片
update user set header_url = 'http://images.nowcoder.com/head/760t.png' where header_url like 
'%localhost%';

3.4 Maven配置与安装

Maven 下载地址: https://maven.apache.org/
复制链接地址:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
可以在这里查看: https://archive.apache.org/dist/maven/maven-3/
然后使用下面这个命令下载到 root 下:
wget -i -c https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
- 解压 maven
tar -zvxf apache-maven-3.6.1-bin.tar.gz -C /opt
查看
cd /opt
ll
pwd
- 配置环境变量
vim /etc/profile
export PATH=$PATH:/opt/apache-maven-3.6.1/bin
文件生效: source /etc/profile
查看版本:mvn -version
- 将 maven 的镜像设置为阿里云
pwd
cd conf
ll
vim settings.xml
将本地的 maven 镜像拷贝到服务器上
<!-- 配置阿里云的maven远程仓库 -->
<mirrors>
    <mirror> 
    <id>alimaven</id> 
        <name>aliyun maven</name> 
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
        <mirrorOf>central</mirrorOf> 
    </mirror> 
</mirrors>

3.5 安装 JRE

安装 JRE
- 先搜索: yum list java*
- 安装命令: yum install -y  java-1.8.0-openjdk.x86_64 
查看 Java 版本: java -version
安装错误了版本可以参考这篇文章: https://blog.csdn.net/liu_jiachen/article/details/125264334

3.6 Kafka配置与安装

Kafka 下载地址: https://kafka.apache.org/downloads
复制链接地址: https://downloads.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
下载指令
wget -i -c https://downloads.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
安装 Kafka
将 kafka 解压到 opt目录下: tar -zvxf kafka_2.12-2.3.0.tgz -C /opt
后台启动 kafka 和 zookeeper
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动 kafka
cd bin
./kafka-server-start.sh -daemon ../config/server.properties
查看 kafka 有哪些主题: bin/kafka-topics.sh --list --bootstrap-server localhost:9092
kafka 启动闪退解决方案: https://www.cnblogs.com/hi3254014978/p/14062989.html

3.7 Elasticsearch配置与安装

Elasticsearch 下载地址: https://www.elastic.co/cn/
复制链接地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz
Elasticsearch ik 下载地址: https://github.com/medcl/elasticsearch-analysis-ik
复制下载链接地址: 
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
下载指令
wget -i -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz
wget -i -c https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
安装 Elasticsearch
解压命令: tar -zvxf elasticsearch-6.4.3.tar.gz -C /opt
unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zip
修改配置文件
cd /opt/elasticsearch-6.4.3/
ll
cd /config
vim elasticsearch.yml
提示: 这里在修改配置的时候一定要注意空格我这里就是没注意搞了2个小时
比如: cluster.name: nowcoder 冒号后面一定要空格
修改运行空间: vim jvm.options
创建一个分组用户
groupadd nowcoder
useradd nowcoder1 -p 123456 -g nowcoder
给新建的用户授权
cd /opt
chown -R nowcoder1:nowcoder *
cd /tmp
chown -R nowcoder1:nowcoder *
切换到用户: su - nowcoder1
cd /opt/elasticsearch-6.4.3/
bin/elasticsearch -d 
su -

3.8 Redis安装与配置

安装 redis
cd /
yum list redis*
安装命令: yum install -y redis.x86_64  
启动 redis: systemctl start redis
查看 redis 状态: systemctl status redis
查看 redis 的 key: redis-cli
然后在输入: keys *

3.9 Tomcat安装与配置

Tomcat 下载地址: https://tomcat.apache.org/
选择下载 Tomcat 9.0 然后选择: Core 下下面的 tar.gz (pgp, sha512)
复制链接地址:https://downloads.apache.org/tomcat/tomcat-9/v9.0.64/bin/apache-tomcat-9.0.64.tar.gz
下载指令
wget -i -c https://downloads.apache.org/tomcat/tomcat-9/v9.0.64/bin/apache-tomcat-9.0.64.tar.gz
安装 Tomcat
将 tomcat 安装到 /opt 文件下: tar -zvxf apache-tomcat-9.0.64.tar.gz -C /opt
配置环境变量
- cd /opt/apache-tomcat-9.0.64/
- cd bin/
- vim /etc/profile
添加这句话: export PATH=$PATH:/opt/apache-tomcat-9.0.64/bin
文件生效: source /etc/profile
打印是否有配置的路径: echo $PATH
启动 tomcat: startup.sh
关闭 tomcat: shutdown.sh
提示:我自己使用的是阿里云服务器免费一个月的所以tomcat端口需要自己添加
可以参考这篇文章: https://zhuanlan.zhihu.com/p/487199620

3.10 Nginx安装与配置

安装 nginx
切回到根目录: cd /root
搜索: yum list nginx*
安装命令: yum install -y nginx.x86_64 
配置 nginx 分发请求给 tomcat
修改配置: vim /etc/nginx/nginx.conf
启动 nginx: systemctl start nginx
关闭 nginx: nginx -s stop
查看 nginx 状态: systemctl status nginx
提示: 这里配置一定需要注意字母是否写错
将 tomcat 目录下的 webapps 文件夹下的东西全部删除
cd /opt/apache-tomcat-9.0.64/
cd webapps/
rm -rf *

3.11 修改项目配置

修改项目配置
- 修改 application.properties 和 glod.js
修改 server.servlet.context-path=
修改 let CONTEXT_PATH = ""

项目打包: community.zip
上传: pscp -P 22 community.zip root@自己:/root
源码解压: unzip -d /root community.zip
cd community/
忽略测试: mvn clean package -Dmaven.test.skip=true
第二次可以直接这样写: mvn package -Dmaven.test.skip=true
拷贝 ROOT.war 到 tomcat
cd target/
mv ROOT.war /opt/apache-tomcat-9.0.64/webapps/
启动 tomcat: startup.sh
查看文件信息命令: cat xx(文件名)

3.12 打包出现的问题解决方法

Centos安装jdk解决报错No compiler is provided in this environment. Perhaps you are running on a JRE rather 
than a JDK?
解决方法: yum install -y java-devel
错误解决方案:https://kehao.blog.csdn.net/article/details/117197397

4. 总结

上面是我自己部署项目的时候遇到的坑然后总结的经验,大家没把握的情况下久按照视频里
面的环境版本来搭建,不然有些错误都不知道怎么解决.
其次就是安装每个环境的时候请看下我的步骤可以帮助你少走一些坑

5. 说明

本文与51CTO博客同号: 个人51CTO博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仿牛客论坛项目部署总结 的相关文章

  • mac安装homebrew报错 curl: (7) Failed to connect to raw.githubusercontent.com port443

    mac安装brew一直报错 xff0c 完整的报错信息如下 span class token literal property property curl span span class token operator span span c
  • C++ vector用法详解

    vector是STL的动态数组 xff0c 可以在运行中根据需要改变数组的大小 因为它以数组的形式储存 xff0c 所以它的内存空间是连续的 vector的头文件为 include lt vector gt 常用方法 xff1a span
  • 机器学习方法简介(2)--决策树、随机森林、朴素贝叶斯

    1 决策树 决策树是一种用于对实例进行分类的树形结构 Hunt算法 是一种采用局部最优策略的决策树构建算法 xff0c 它同时也是许多决策树算法的基础 xff0c 包括ID3 C4 5和CART等 Hunt算法的递归定义如下 xff1a 1
  • 软件工程——结构化分析方法

    结构化方法 概念 用来指导软件项目的开发 一种系统化的软件开发方法包括 xff1a 结构化分析方法 结构化设计方法 结构化程序设计方法 结构化设计方法和结构化程序设计方法的区别 xff0c 前者指的软件开发设计阶段的软件体系架构以及内部模块
  • linux安装软件方式--源码编译安装

    简介 xff1a 介绍源码编译安装软件包的管理 1 源码安装优点 xff1a 编译安装过程 xff0c 可以设定参数 xff0c 指定安装目录 xff0c 按照需求进行安装 xff0c 指定安装的版本 xff0c 灵活性比较大 2 源码安装
  • 正点原子mpu6050数据读取失败问题

    如果下载他们官方的程序都读不出来的话 看看你买的是stm32f407的V3版本吗 xff1f 这个版本是只有磁力计的官方代码 你用V3板跑他们的mpu的代码就会读不出来 xff0c 那个mpu6050的代码是已经停产的V2板子的
  • keil5 STM32F103 下载程序出错Flash Download failed - "Cortex-M3"

    1 背景 STM32F103单片机无法下载程序 最近在使用STM32单片机做项目 先是使用的H743单片机 xff0c 现在需要使用到F103单片机 H7烧写程序正常 xff0c 但是无法对F103烧写程序 错误为 xff1a Error
  • 略解总线带宽计算

    例1 xff1a 解 xff1a 时钟频率100MHz 也就是说一秒钟有100M个时钟周期 5个时钟周期传一个字 100M个时钟周期可以传100M 5 61 20M个字 也就是1秒钟可以传20M个字 一个字是16位 也就是2B 20M个字就
  • TX2(2): 安装JetPack L4T 3.1 (9003载板)

    参考官网教程 xff0c 其实官网教程已经挺详细 xff0c 主要看官网教程就行 http docs nvidia com jetpack l4t 3 1 index html developertools mobile jetpack l
  • String字符串编码格式转换(UTF8/GBK)

    1 转UTF8编码 string StdStringToUTF8 const string amp str int nwLen 61 MultiByteToWideChar CP ACP 0 str c str 1 NULL 0 wchar
  • 前缀树(Trie树)

    前缀树是一种用于快速检索的多叉树结构 xff0c 利用字符串的公共前缀来降低查询时间 xff0c 核心思想是空间换时间 xff0c 经常被搜索引擎用于文本词频统计 优点 xff1a 最大限度地减少无谓的字符串比较 xff0c 查询效率高 x
  • C++串口通信

    一 串口通信的基本原理 串口的本质功能是作为 CPU 和串行设备间的编码转换器 当数据从 CPU 经过串行端口发送出去时 xff0c 字节数据转换为串行的位 xff08 bit xff09 xff1b 在接收数据时 xff0c 串行的位被转
  • 死锁的四个必要条件以及处理策略

    一 什么是死锁 死锁是指两个或两个以上的进程 xff08 线程 xff09 在运行过程中因争夺资源而造成的一种僵局 例如 xff0c 某计算机系统中只有一台打印机和一台输入设备 xff0c 进程P1正占用输入设备 xff0c 同时又提出使用
  • EM算法简介

    1 简介 EM算法是一种迭代优化策略 xff0c 由于它的计算方法中每一次迭代都分两步 xff0c 其中一个为期望步 xff08 E步 xff09 xff0c 另一个为极大步 xff08 M步 xff09 xff0c 所以算法被称为EM算法
  • 三菱PLC MC协议

    1 MC协议的目的 xff1a 允许外部设备读写PLC内部寄存器 2 协议格式 xff1a 通讯方式有RS485和TCP IP两种 xff0c 通讯格式有很多种 xff1a 3E 3C 4C 4E帧格式 xff0c 通讯内容分为二进制和AS
  • find和find_if用法

    一 find的用法 STL容器中有很多find xff0c 比如说set xff0c map 他们内部都有内置的find函数 xff0c 一般情况下 xff0c 如果我们用到这些容器 xff0c 那么我们直接用它的内置find就可以了 xf
  • QTreeView节点拖放

    拖放操作分为拖动 Drag 和放置 Drop 两种操作 xff0c 当拖动时需要把拖动的数据进行存储 称为编码 xff0c 数据存储为QMimeData类型的对象 称为放置数据 xff0c 当执行放置操作时需要把存储的数据读取出来 称为解码
  • OOD七大原则

    1 单一职责原则 xff08 Single Responsibility Principle xff09 一个类或一个接口只有一个职责 xff0c 有且仅有一个原因引起变化 2 开闭原则 xff08 Open Closed Principl
  • 微服务探索之路05篇jenkins构建net6和vue docker镜像到Harbor自动更新k8s服务镜像

    从1 4篇已经学习了docker Harbor k8s的基本用法 接下来进阶一下使用jenkins结合起来做到自动部署项目 1 安装jenkins 1 1前提条件 docker环境 xff0c 可参考第01篇安装docker本文使用的是li

随机推荐

  • linux为用户添加sudo权限

    一 linux为用户添加sudo权限 用sudo时提示 34 xxx is not in the sudoers file This incident will be reported 其中XXX是你的用户名 xff0c 这是止当前用户没有
  • pixhawk多线程编程

    金错刀 pixhawk多线程程序编写 pixhawk源码多线程程序的编写 主要是针对pixhawk源码进行第二次开发的学习笔记 xff0c 记录下以便日后查阅 期望达到的目标 添加一个app应用 xff0c 在nsh的后台中运行该应用 xf
  • [视觉惯性导航系列]相机标定工具--kalibr

    前言 有很多博主推荐kalibr进行相机标定 我参考博主 纷繁中淡定 Kalibr标定Intel D435i相机 完成相机标定 但是kalibr在安装过程中会出现很多令人头秃的报错信息 综合了网上好多人的方法 才完成 本文做一点记录 本文不
  • C++ Exception

    Exception type Derived types scattered throughout different library headers bad alloc Exception thrown on failure alloca
  • 什么是最优化问题(Optimization Problem)?

    最优化问题是人们在科学研究和生产实践中经常遇到的问题 1 人类所从事的一切生产或者社会活动均是有目的的 其行为总是在特点的价值观念或者审美取向的支配下进行的 xff0c 因此经常面临一个可行的甚至是最优化的方案的决策问题 这就是最优化问题
  • 单例模式(java代码实现)

    应用单例模式时 xff0c 类只能有一个对象实例 xff0c 这么做的目的是避免不一致状态 饿汉式单例 xff1a xff08 立即加载 xff09 饿汉式单例 public class Singleton1 指向自己实例的私有静态引用 x
  • C++函数后面加“:”的含义

    转载 xff1a C 43 43 函数后面加 xff1a 的含义 hhd1988的专栏 CSDN博客 1 c 43 43 成员函数后面跟 xff1a 表示的是赋值 xff0c 这是c 43 43 的特性 如下 xff1a A int aa
  • 因子图(factor graph)

    因子图 xff08 factor graph xff09 Factor Graph 是概率图的一种 xff0c 概率图有很多种 xff0c 最常见的就是Bayesian Network 贝叶斯网络 和Markov Random Fields
  • 词袋模型(Bag of Features,BOF)

    Bag of Features xff08 BOF xff09 对于程序而言这个人就是一堆像素嘛 xff0c 让它直接找的话它只能一个个像素的去比较然后返回最接近的了 xff08 近邻算法 xff09 但是现实中物体的形状颜色会发生变化 x
  • SNMPv3基于用户的安全模型USM及消息格式

    一 USM相关网址 SNMPv3使用了基于用户的安全模型USM RFC 3411 Architecture for SNMP Frameworks http www ietf org rfc rfc3411 txtRFC 3414 User
  • 超详细的python搭建区块链(下)

    在前面 超详细的python搭建区块链 xff08 中 xff09 我们搭建了一个简单的区块链 在这个简单的区块链能够实现交易 挖矿等基本功能 不过 xff0c 区块链上的节点应该是分散的 如果它们是分散的 xff0c 我们究竟如何确保它们
  • RuntimeError: Expected 4-dimensional input for 4-dimensional weight [32, 1, 5, 5]

    文章目录 1 问题引入2 运行报错3 代码4 分析原因5 解决办法6 完整代码7 参考文献 1 问题引入 今天在使用pytorch训练一个模型的 xff0c 数据集的读取是使用pytorch自带的函数来进行读取和预处理的 xff0c 网络使
  • 如何在Linux服务器上安装Anaconda(超详细)

    目录 1 安装Anaconda1 1 下载anaconda的安装包1 2 解决安装出现的bug1 3 安装anaconda1 4 点击Enter xff08 回车键 xff09 1 5 输入 yes1 6 继续点击 Enter1 7 输入
  • Pytorch实现FGSM(Fast Gradient Sign Attack)

    目录 1 相关说明2 相关简述3 代码实现3 1 引入相关包3 2 输入3 3 定义被攻击的模型3 4 定义FGSM攻击函数3 5 测试函数 4 可视化结果5 可视化对抗样本6 预训练模型下载7 训练模型8 完整代码 1 相关说明 最近在整
  • RuntimeError: element 0 of tensors does not require grad and does not have a grad_

    文章目录 1 问题描述2 解决方案2 1 方案12 2 方案2 3 参考文献 1 问题描述 今天在跑代码的过程中 xff0c 因为要训练一个模型然后在测试阶段使用PGD来生成相应的adv image来测试这个模型 xff0c 结果运行到测试
  • Pycharm 搭建 Django 项目 (非常详细)

    目录 1 安装需求2 准备工作2 1 新建项目2 2 输入相关配置2 3 项目创建完成2 4 查看安装 Django 版本2 5 启动项目2 6 解决一点小问题 3 一点小补充4 参考文献 1 安装需求 在使用 python 框架 Djan
  • Docker

    官方网站 xff1a https www docker com Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 xff0c 然后发布到任何流行的 Linux 机器上 xff0c
  • SpringBoot + Thymeleaf 实现发送验证码计时器功能

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 功能需求2 效果图展示3 代码4 参考文献5 联系我 1 功能需求 实现找回密码然后点击获取验证码之后出现XX秒候重新获取
  • 解决 SpringBoot 图片加载失败

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 问题描述2 解决方案2 1 打开 IDEA 3 参考文献 1 问题描述 在使用 SpringBoot 开发项目的时候发现了
  • 仿牛客论坛项目部署总结

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 前言2 部署项目需求3 环境配置3 1 阿里云服务器3 2 本地文件上传到服务器3 3 MySQL配置与安装3 4 Mav