云服务器上部署仿牛客网项目

  • 安装JRE
  • 安装Maven
  • 安装MySQL
    • 给mysql导入数据
  • 安装Redis
  • 安装kafka
  • 安装ElasticSearch
  • Wkhtmltopdf
  • 安装tomcat
  • 安装nginx
  • 部署代码


内存最好有4g,才能跑起来。Nginx起到反向代理的作用,正向代理是代理浏览器,反向代理是代理服务器。Tomcat是用Java开发的,因此安装Tomcat之前要安装JRE;希望在服务器上打包程序,因此安装Maven,如果有环境差异,在windows打包再传过去可能会有问题,因此最好在服务器上打包。真实的生产环境下,一个软件可以部署多个实例,例如Tomcat,MySQL,Redis等。学习中,就部署到一个服务器上。访问Linux虚拟机可以用Putty。

命令行传文件:

pscp 文件名 root@ip地址:/test

用Bitvise或者Xftp等软件传也行。
下载unzip,先cd到根目录,在用yum搜

cd /
yum list unzip*
yum install -y unzip.x86_64 java-1.8.0-openjdk.x86_64
java -version

安装JRE

注意项目需要JDK12才能运行。

yum list java*
yum install -y

安装Maven

去官网下载3.6.3版本的安装包,下载后安装到/opt目录下

wget -i -c 链接
tar -xzvf apache-maven-3.6.3-bin.tar.gz -C /opt
#配置环境变量到/etc/profile
vim /etc/profile
#在后面追加,保存退出
export PATH=$PATH:/opt/apache-maven-3.6.3
#刷新
source /etc/profile
#打印PATH
echo $PATH
#查看版本
mvn -version
#修改源,进入conf文件夹
vim settings.xml

在mirrors中加入:

<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

安装MySQL

这里已经装过了,要安装可以参考另外一篇博客。也可以先去官网下载yum对应的库文件,再用yum安装库文件,就能用yum下载最新的MySQL,安装mysql-community-server.x86_64。

yum install -y 库文件名

启动mysql:

systemctl start mysqld

查看Mysql版本:

mysql -V

查看生成的临时密码:

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

登录之后,修改密码:

alter user root@localhost identified by '新密码';

给mysql导入数据

unzip -d /test/sql init-sql.zip

登录mysql,执行sql文件

create database community;
use community;
#导入文件
source /test/sql/init_schema.sql;
source /test/sql/init_data.sql;
source /test/sql/tables_mysql_innodb.sql;
show tables;

下面需要把header_url中的localhost的url改成网络能访问到的。

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

安装Redis

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

测试redis

redis-cli
keys *
exit

安装kafka

tar -xzvf kafka_2.12-2.3.0.tgz -C /opt
#进入到config文件夹下
vim zookeeper.propertiesvim server.properties

基本上只要保存路径符合linux路径规范就行。
先进入kafka安装路径,不要进入bin目录。因为是服务器,需要用后台方式启动。
启动zookeeper

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动kafka

nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &

测试是否成功启动kafka

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

如果显示报错:

关闭tomcat,然后执行上面命令重启,并测试。

shutdown.sh

安装ElasticSearch

tar -xzvf elasticsearch-6.8.23.tar.gz -C /opt
unzip -d /opt/elasticsearch-6.8.23/plugins/ik elasticsearch-analysis-ik-6.8.23.zip
#进入config目录
vim elasticsearch.yml

设置集群名字,数据和日志存放位置:

修改jvm设置,可以根据内存大小设置占用空间

vim jvm.options


ElasticSearch不允许root用户启动,需要创建一个用户,并用这个用户启动

groupadd nowcoder
useradd nowcoder1 -p 设置密码 -g nowcoder
cd /opt
chown -R nowcoder1:nowcoder *
cd /tmp
chown -R nowcoder1:nowcoder *
su - nowcoder1
#进入elasticsearch安装目录后,后台启动ES
bin/elasticsearch -d
su
#测试是否安装成功
curl -X GET "localhost:9200/_cat/health?v"

Wkhtmltopdf

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

需要gui支持,安装虚拟gui程序

yum install -y xorg-x11-server-Xvfb.x86_64
#测试
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage https://www.baidu.com 1.png

每次都这样写命令很麻烦,因此可以包装一下

cd /opt
vim wkhtmltoimage.sh
#添加
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@"
chmod +x wkhtmltoimage.sh
cd /test
/opt/wkhtmltoimage.sh https://www.baidu.com 2.png

安装tomcat

tar -xzvf apache-tomcat-9.0.64.tar.gz -C /opt
vim /etc/profile
#在后面追加
export PATH=$PATH:/opt/apache-tomcat-9.0.64/bin
source /etc/profile
echo $PATH

启动tomcat

startup.sh

安装nginx

yum list nginx*
yum install -y nginx.x86_64
vim /etc/nginx/nginx.conf

把这一段注释掉

在这段后面加上:

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

启动nginx

systemctl start nginx

部署代码

由于没有处理根路径,因此访问/时要等价与访问/index,一个方法是访问/时重定向到/index,另外一个方法
可以把webapps中的都删去,再加上自己的项目。
对代码进行调整:
1、在application.properties中把/community改成空。

2、在global.js中把/community改成空

3、在HomeController中加上

@RequestMapping(path = "/", method = RequestMethod.GET)
public String root(){return "forward:/index";
}

4、在pom.xml中修改打包方式和打包名字


5、通过设置,选定使用哪个配置文件,并且修改相应项

修改成服务器ip

6、tomcat本身有main函数,一个Java程序不可能有两个main函数,因此重写方法
重建CommunityServletInitializer类,继承SpringBootServletInitializer,重写方法:

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

tomcat从这个类访问。
使用maven的clean把target删除,并传送整个项目文件到云服务器。

unzip -d /test community.zip
#第一次下载maven并执行打包,会下载相关依赖,需要一些时间
#进入community中打包
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

再复制到tomcat中:

mv ROOT.war /opt/apache-tomcat-9.0.64/webapps/

linux区分大小写,先登录MySQL数据库

show variables like '%case%';
vim /etc/my.cnf
#加上
lower_case_table_names=1
#重启
service mysqld restart

这个对于mysql8不行。手动修改表名为大写。

云服务器上部署仿牛客网项目相关推荐

  1. CentOS7云服务器上部署小而美博客

    CentOS7云服务器上部署小而美博客 安装JRE 安装tomcat 开放端口 阿里云服务器设置 安装nginx 数据库操作 域名注册 导出war包 部署的博客地址 安装JRE 由于已经在Window ...

  2. 仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)

    目录 1. 发送邮件 1.0 三步走 1.1 邮箱设置 1.2 Spring Email 1.3 模板引擎 1.4 发送邮件的过程 1.5 检验发送邮件的过程 2. 开发注册功能 2.0 注册功能的步 ...

  3. 仿牛客网项目第五,六章:异步消息系统和分布式搜索引擎(详细步骤和思路)

    目录 1. Kafka:构建TB级异步消息系统 1.0 同步/异步消息的区别 1.1 项目的目的 1. 2 阻塞队列实现异步消息系统 1.4 Kafka入门 1.5 Spring整合Kafka 1.6 ...

  4. 入门之:如何在腾讯云服务器上部署自己的静态前端项目(服务器系统:centos7)

    需要准备的东西有: 1.腾讯云服务器 1.1.安装nginx代理 1.2.安装FTP服务(用于linux服务器接收我们本地电脑上传的文件) 2.FileZilla(在个人电脑上安装,用于上传文件到服务 ...

  5. 2021-04-10 仿牛客网第六章

    一.Elasticsearch入门 仿牛客网 内容部分引用至 https://blog.csdn.net/weixin_44406146 目录 一.Elasticsearch入门 Elasticsea ...

  6. 从零开始—仿牛客网讨论社区项目(六)

    主要技术架构: SpringBoot Spring SpringMVC MyBatis Redis Kakfa Elasticsearch Spring Security Spring Actator ...

  7. Java牛客项目课_仿牛客网讨论区_第八章

    文章目录 第八章.项目发布与总结 8.1. 单元测试 8.2.项目监控 8.3.项目部署 宝塔面板.yum.rpm.压缩包 安装 unzip.Java1.8.Maven.MySQL.Redis.Kaf ...

  8. 仿牛客网社区项目 全栈总结

    学习仿牛客网社区项目 代码&资源 各章节总结 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 争取让每个知识点都有链接可点 项目总结 网站架构图 常见面试题 MySQL Red ...

  9. 从零开始—仿牛客网讨论社区项目(一)

    主要技术架构: SpringBoot Spring SpringMVC MyBatis Redis Kakfa Elasticsearch Spring Security Spring Actator ...

最新文章

  1. 第六篇:基于朴素贝叶斯分类算法的邮件过滤系统
  2. 百度今晨7:20分“宕机”
  3. PT60报错(在表 $ 中午关键字$的输入项目T555Z)
  4. C# 用数据库记录填充树
  5. IntelliJ IDEA JRebel Maven Tomcat 实现热部署
  6. c++ 凸包 分治算法_三维凸包
  7. 有了这份程序员面试指南,你离大厂Offer还远吗?| 附推荐书籍
  8. 矩池云上CUDA、nvcc、cuDNN相关操作汇总
  9. SVN系列二 SVN的安装配置(linux)
  10. 借着酒劲儿,是真敢说!程序员酒后吐真言
  11. WinForm中Chart控件使用
  12. 学术期刊英文标点符号使用规范
  13. ICMP协议(网际报文控制协议)详解
  14. 中国3G蛋糕1.5万亿 10倍三峡工程
  15. 读书百客:《月夜》鉴赏
  16. 绝对干货丨最值钱的20个管理工具,会用一半的已年薪百万
  17. 功能强大的黑科技APP,各种免费资源一应俱全!
  18. 人人都说的SaaS,你真的了解它吗?
  19. 简单实用 铃铛运动动画制作AE教程
  20. 计算机课设微程序最大值,计算机组成原理课程设计(微程序)报告.doc

热门文章

  1. element-ui中的el-table-column加v-if不生效,表头错乱
  2. 你对前端开发岗的看法
  3. 转载:使用Windows Live Writer发布日志
  4. respberry pi 树莓派系统设置返回英文English
  5. Golang 结构体
  6. Oracle那些年那些事儿
  7. redhat,FC5,CentOS你装上了吗? 超简单硬盘安装redhat,FC5和CentOS
  8. 数据可视化图表之面积折线图
  9. Variable Generator/dense/kernel already exists, disallowed.
  10. A卡 HD5770(HD6770) Readon HD 5xxx 6xxx系列显卡黑苹果MOJAVE CATALINA QE/CI驱动教程