ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

将《牛客高薪项目求职课》部署到阿里云centos服务器

2020-11-25 10:35:58  阅读:307  来源: 互联网

标签:高薪 opt centos tomcat root 牛客 yum 安装 目录


历时1个半月的牛客高薪项目求职课总算是做完了,今天跟着视频把项目部署到了阿里云上,为了以后复习,所以记录了部署过程,通过这个部署线上过程,确实学到了很多,对Linux也没有这么恐惧了

总共的过程为:

一、安装 PuTTY
二、安装unzip工具
三、下载 Jre
四、安装Maven
五、安装 MySQL
六、安装 Redis
七、安装kafka
八、安装elasticSearch和中文分词插件
九、安装wkhtmltopdf
十、安装tomcat  
十一、安装nginx
十二、修改项目本身

服务器环境

阿里云 2CPU/4G, Centos7.6。项目课老师说部署这个项目服务器不能少于4G内存,否则带不起来。

写在前面

1、centos 优先采用yum命令来安装各种软件

因为这个命令会自动安装好软件,并且配置好环境变量和各种依赖服务;但是yum命令安装的软件版本可能不是最新的, 但是这些版本一般比较稳定。这个命令必须在"/"目录中使用。

yum list aaa*; 可以在yum镜像版本库查找aaa, 如果版本库中存在想要的软件,则可以直接使用yum命令安装

yum install -y aaa.101;   可以在yum镜像版本库中搜索名为 aaa.101的软件,并安装到本机的/etc目录下,且配置好环境变量和各种依赖服务;

比如:安装unzip工具来解压文件;必须在 "/" 主目录使用yum list unzip*命令才能搜到,复制版本号;yum install -y unzip.x86_64;进行安装;

2、linux 的复制和粘贴快捷键,后面可能用的很频繁

复制命令:Ctrl + Insert  组合键

粘贴命令:Shift + Insert  组合键

一、安装 PuTTY

下载putty, 这个软件的功能和xshell一样,都是用来远程登录服务器的 官网下载64位且后缀为.msi的安装包 下载好后一路下一步即可安装成功;
使用
把ip和端口配置好; Connection-> keep alive 设置为10,这个设置可以使得连接时间变得比较长,不会动不动就断开连接。最后点击 "open" 按钮即可   使用root账户登陆;shift + insert 快捷键可以粘贴密码;输入正确的密码即可远程连接到服务器,现在就可以通过这个终端来访问服务器了。

二、安装unzip工具

安装unzip工具来解压文件; 进入到 "/" 根目录,使用yum list unzip*命令搜索unzip在yum镜像版本库中的存在的版本,复制版本号; cd / yum list unzip* yum install -y unzip.x86_64 进行安装;

远程文件传输

下载一个 PSCP 工具,放到C:/windows/System32目录下即可
参考:Linux与windows文件互传-pscp坑---- 'pscp' 不是内部或外部命令,也不是可运行的程序或批处理文件...
使用
远程传输到本地 pscp [options] [user@]host:sourcePath targetPath 比如:pscp root@192.168.50.5:/root C:\Users\324014978\Desktop\aaa.txt 即可把服务器中/root路径下的aaa.txt传输到本地桌面 本地传输到远程 pscp [options] sourcePath1 [source....] [user@]host:targetPath 比如:pscp -P 22 aaa.txt bbb.txt root@192.168.50.5:/root 
即可把本地的aaa.txt 和 bbb.txt传输到服务器的/root目录下 参考:windows下 pscp 安装及使用
可能的遇到的问题
本地传输文件到服务器,pscp sql.zip root@192.168.50.5:/root报了下面这个错误 ssh_init: Network error: Cannot assign requested address

解决方法是加上端口号,如下所示:

pscp -P 22 sql.zip root@192.168.50.5:/root

 

参考:pscp ssh_init: Network error: Cannot assign requested address

三、下载 Jre

进入到根目录,搜索 java* cd / yum list java*   把上图中两个版本都复制下来,分别安装 yum install -y java-1.8.0-openjdk.x86_64 yum install -y java-1.8.0-openjdk-devel.x86_64  安装完后使用 java -version 和 javac 命令测试是否安装成功,通过结果信息来看,jdk 安装成功

四、安装Maven

去官网下载地址复制下载链接

 

使用wget 命令下载安装包, url 是刚才复制的链接url wget -i -c https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz 在/root目录下查看是否有maven安装包,可以看到是有的,说明下载成功 把Maven解压到 /opt 目录下  tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt 因为解压缩方式安装系统识别不了,不会自动配置环境变量,所以我们要手动配置环境变量。 进入到/opt目录下的 maven里,再进入到 bin目录下,使用pwd 查看路径 修改 /etc/profile vim /etc/profile export PATH=$PATH:/opt/apache-maven-3.6.3/bin source /etc/profile是使文件配置生效; 测试Maven 是否安装成功 echo $PATH;  mvn -version;  通过上面的信息知道Maven应该是安装成功了 修改maven的镜像到阿里云;因为国内从阿里云下载 Maven依赖更快。在 conf/setting.xml中的<mirrors></mirrors>加入下面这个语句块
<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

五、安装 MySQL

mysql下载地址:https://dev.mysql.com/downloads/repo/yum/

不要下载第一个,下载第二个linux7的,否则会出现相关依赖的问题;导致一直安装不上去; 我刚开始下载了Linux 8版本的mysql, 所以一直报下面这个依赖问题 这时候应该使用yun list installed命令查看已安装的mysql; 我看到的是mysql80-community-release.noarch ; 然后复制后使用yum remove mysql80-community-release.noarch 删除它; 接下来使用weget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm重新下载linux7版本的mysql yum包 使用yum install -y mysql80-community-release-el7-3.noarch.rpm 把这个包加入到版本库 进入到根目录后查看版本, cd / yum list mysql* 发现仍然是老版本,因为我们刚才删除错误包之后没有刷新缓存, 使用yum clean all;清除缓存;如果不清楚缓存,yum镜像版本中还会有刚才错误版本的残留包,导致新包安装不上去。
刷新完后再次查看yum list mysql*; 可以看到yum 镜像版本库中已经更新成为了我们刚下安装的版本 复制mysql-community-server.x86_64后使用yum执行安装 yum install -y mysql-community-server.x86_64即可正常安装成功 systemctl start mysqld启动数据库; systemctl status mysqld查看数据库的状态 数据库启动的时候会生成一个默认密码,保存在/var/log/mysqld.log这个日志文件中,所以使用grep 'password' /var/log/mysqld.log命令来搜索;如果搜索结果有多个,取一个时间最新的密码; 使用root账户和刚才查找到的密码登录mysql; alert user username@localhost identified by 'new password'修改密码;新密码必须有大小字符,数字,特殊字符; 退出后重新登录;登录成功,所以说刚才修改密码成功。 cd 到sql.zip目录;     unzip -d dest_path zip_name解压缩;可以看到得到了三个.sql文件 登录mysql;    建一个名为community的数据库; create database community; use community;   导入sql数据;source path; souce 所有的表;    必须先导入init_schema.sql; 因为这里面是所有的基础表,init_data.sql里面的都是数据。

六、安装 Redis

进入到根目录下搜yum list redis*;  复制版本后使用yum 安装;     systemctl start redis启动redis;    systemctl status redis;查看启动状态 redis-cli进入redis进行测试;

七、安装kafka

http://kafka.apache.org/downloads官网复制下载链接 页面跳转后如下 进入/root目录,使用wegt 下载包 查看是否下载成功 然后tar -zvxf path -C /opt;解压; 进入/opt下的kafka中, 进入kafka的config目录,查看是否需要修改zookeeper.properties和server.properties;  zookeeper.properties如果是tmp目录则不需要改; 查看server.properties的log-dir是否符合linux路径规范,符合则不需要改动; 修改consumer.properties中的group-id为 community-consumer-group(这个修改是因为我的项目的配置文件中用的是“community-consumer-group"所以需要改,如果你没这个需要,可以不用改动这个) 退到kafka根目录: 后台启动zookeeper后启动kafka;  bin/zookeeper-server-start.sh -daemon config/zookeeper.properties  启动kafka:  nohup bin/kafka-sever-start.sh config/server.properties 1>/dev/null 2>&1 & 测试是否安装成功;查看kafka的所有主题;bin/kafka-topics.sh --list --bootstrap-server localhost:9092; 一直启动不成功,连不上broker 网上百度了阿里云部署kafka, 发现需要在安全组中设置开放9092这个端口       重启zookeeper 和 kafka, 因为我不知道怎么重启,我就直接杀进程了,因为刚才重试了好多次,所以使用ps命令查看有好几个java进程,把这三个java进程都杀掉 再次输入刚才启动zookeeer 和 kafka的命令 查看 topc 列表判断是否启动成功,输入命令后控制台停顿几秒后没有输出任何东西后打印出了终端提示符,说明应该是启动成功了的,因为现在的kafka本来就是空的,不存在任何topic

八、安装elasticSearch

先wegt下载好elasticSearch.tar.gz和一个分词插件;

下载elasticsearch

在官网找到下载地址后复制链接 点击自己想要的版本 页面跳转到下面的页面,鼠标右键 linux 版本后复制链接 进入到/root 目录后使用下面的命令开始下载安装包,下面的url是你刚才复制的url  wget -i -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz 查看/root当前目录是否有elasticsearch的安装包,通过查看,发现已经有了

下载中文分词插件

在github https://github.com/medcl/elasticsearch-analysis-ik/releases找到自己想要的版本,点击链接 页面跳转后 查看当前目录是否有ik安装包 使用tar -zxvf path -C /opt解压elasticsearch 到/opt目录下;    unzip -d /opt/ES目录/plugins/ik 包名;来解压分词插件; unzip -d /opt/elasticsearch-7.6.2/plugins/ik elasticsearch-analysis-ik-7.6.2.zip 进入到es目录;查看后进入到plugin目录,查看后进入到ik目录;查看分词插件的文件 退回到es/config中,修改es.yml; 配置cluster.name:nowcoder 配置path.data: /tmp/elastic/data; 配置path:logs: /tmp/elastic/logs; cluster.name: nowcoder path.data: /tmp/elastic/data path.logs: /tmp/elastic/logs 修改jvm.opstions; 修改所占内存大小;  ElasticSearch 不允许root用户启动,所以必须创建一个用户;新建用户并赋予权限,  groupadd nowcoder  useradd nowcoder1 -p 123456 -g nowcoder cd /opt chown -R nowcoder1:nowcoder * cd /tmp chown -R nowcoder1:nowcoder * 切换到新用户,启动ElasticSearch su - nowcoder1 cd /opt/elasticsearch-7.6.2/ elasticsearch-7.6.2]$ bin/elasticsearch -d 切换回root用户,查看 ElasticSearch是否健康,成功打印出来了状态信息,所以Elasticsearch应该是安装且启动成功了 su - curl -X GET "localhost:9200/_cat/health?v"

九、安装wkhtmltopdf

进入根目录下使用yum搜索wkhtmlpdf; yum list wkhtmltopdf* 复制版本后使用yum命令安装; yum install -y wkhtmltopdf.x86_64
-- 安装一个gui工具,yum list *vfb*; yum list *xvfb* 复制版本后使用yum命令安装;
yum install -y xorg-x11-server-Xvfb.x86_64 测试生成长图 xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage https://www.baidu.com 1.png 上面这个命令太长了,所以我们尝试使用脚本封装上面这个长命令,把命令中url 前面的部分都封装到一个脚本中 cd /opt/ vim wkhtmltoImage.sh xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@" 给这个脚本加上可执行权限:chomod +x wkhtmltoimage.sh 回到test目录,测试生成图片 cd /root/test /opt/wkhtmltoimage.sh https://www.baidu.com 2.png

十、安装tomcat 

官网 https://tomcat.apache.org/ 获取下载链接,复制该链接 回到上一级/root目录,我们把所有安装包都统一安装在/root 目录下,使用wegt下载tomcat包, wget -i -c https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.40/bin/apache-tomcat-9.0.40.tar.gz 查看当前目录的文件,可以看到tomcat确实已经下载完成了 解压缩到/opt目录下;    进入到/opt目录,确实已经解压成功 配置环境变量;配置好tomcat的bin路径加到/etc/profile中; 修改完后保存退出,使用 source /etc/profile 来使刚才配置的环境变量生效 在tomcat的 bin目录下输入 startup.sh 启动tomcat 测试是否能通过浏览器访问tomcat; 
在浏览器中使用ip:port访问,x.x.x.x:8080, (x.x.x.x替换为你的服务器公网ip); 在浏览器中输入ip:port后发现页面找不到, 一开始以为是tomcat还启动,所以等了一会,再次访问,还是页面没找到,找到原因是阿里云的8080端口没有开放,需要在安全组中配置8080端口开放   开放端口后再次使用 ip:8080就能成功获取到tomcat的默认页面了,所以tomcat是安装成功了的。

十一、安装nginx

进入到根目录,yum 命令搜索nginx,复制找到的版本 cd / yum list nginx* 使用yum安装 nginx 使用yum命令安装的软件都会默认安装到 /etc/目录下,所以我们修改 nginx目录下的nginx.conf配置文件时,路径必须带上/etc/前缀 vim /etc/nginx/nginx.conf 配置分发请求;注释掉server{}; 增加upsteam myserver{}和server{};     upstream myserver{         server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;     }       server{         listen 80;         server_name 服务器外网ip;         location / {                 proxy_pass http://myserver;         }     } 安全组中增加 80 端口 启动nginx; systemctl start nginx; systemctl status nginx; 启动完nginx后,我们就可以通过nginx来代理tomcat了,所以可以直接使用ip来访问项目;而不需要端口号   关闭nginx; 在当前路径下输入shutdown.sh;    因为我们将来想直接通过ip访问到我们自己的项目,而且tomcat的默认项目,所以我们必须删除掉 tomcat路径中的 webapp中的ROOT项目,这个项目就是tomcat的默认项目,将来我们把我们自己的项目war包也取名为ROOT.war, 这样tomcat启动的时候就会自动加载我们的项目 所以进入到tomcat/webapp; 删掉 ROOT 项目, 因为webapp下的项目都是我不需要的,所以我就把webapp下的所有项目都删了

十二、修改项目本身

1. 修改项目路径为""; global.js中项目名也要改为"";     2. 在HomeController中转发"/"到"/index";     3. 在pom.xml中申明打包为war包, build中申明;pakage打包为root.war    4. 拷贝配置文件两份;我的项目resources有两个配置文件,分别是 application.properties 和 logback-spring.xml ,所以我把这两个文件都分别拷贝了2份, 分别以develop 和 produce 为后缀 在默认配置文件中申明使用的文件;   在后缀为produce的文件中修改相应的参数(mysql密码;domain改成ip; upload路径;wk命令改成我们的脚本), logback文件的路径改一下    5. 改变项目的启动的方式,启动tomcat即启动项目,而不用启动Applicaiton.class;     创建CommunityServlet.class; 5. clean掉target目录;对项目进行压缩 6. 传到root目录下;使用 unzip 命令解压到当前目录; 在项目根目录下Maven构建,使用mvn clean package -Dmaven.test.skip=true,跳过测试;    构建失败了,提示没有编译器 但是我们之前确实是安装了 jdk的呀,java -version也有输出 但是输入javac 确实提示命令没找到 说明我们之前只是安装了jre 没有安装jdk, 所以没有javac工具,百度查找解决方案后,https://www.bfshu.com/bug/185 进入根目录,输入yum install -y devel即可 cd / yum install -y java-devel 重新输入 javac, 发现这个命令可以找到了 再次执行maven命令构建项目 构建成功了 进入到target目录下;移动root.war到tomcat/webapp目录下;    mv ROOT.war /opt/apache-tomcat-9.0.40/webapps/ systemctl start tomcat启动tomcat; startup.sh启动nginx   进入到tomcat的logs目录,查看catalina.xxx.log;通过启动日志,没有看到异常 进入到/tmp目录下看我们项目的日志 浏览器访问项目,测试所有功能,可以正常通过ip地址访问到项目,其他功能也是正常可以使用的 至此,项目部署成功

 

 

标签:高薪,opt,centos,tomcat,root,牛客,yum,安装,目录
来源: https://www.cnblogs.com/hi3254014978/p/14034468.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有