说明:
本次记录在自己阿里云服务器部署自己博客的记录笔记.为了后期查询资料方便记录有文本资料和视频资料在自己百度网盘中;因个人技术有限,对于一些介绍可能存在不当和错误之处.
作者:MrKay
文档资源地址:
链接:https://pan.baidu.com/s/1HuYTRXjTn5sX-GKoyHiM5g 提取码:g5ic
视频资源:链接:https://pan.baidu.com/s/1sUw-XaCQfBJ20Z8oKvxiMg 提取码:cy9n
1、博客说明:
本次部署的是一个小的SpringBoot项目,是一个简单的个人博客,博客的相关静态资源是在B站上找的,基本内容也没有 进行什么大的修改,只是将博客使用的技术、框架、数据库设计、功能分析和实现思路进行了重点学习。
2、前端:
semantic-ui 组件进行的页面构建 中文网:https://zijieke.com/semantic-ui/
jquery.js 组件等等
3、后台:
SpringDataJPA
SpringBoot脚手架
4、开发工具:
IDEA 、VSCode、Xshell6、SQLyog、Chrome浏览器 、Axure RP 8
- 阿里云官网 https://www.aliyun.com/
- 注册阿里云账号(自行注册)
- 阿里云购买教程 https://yq.aliyun.com/articles/699313
- 公网IP 私网IP
- 进入阿里云官网 https://www.aliyun.com/
- 点击 “域名”
- 搜索你想要的域名进行购买;
- 进入阿里云官网 https://www.aliyun.com/>
- 进入“控制台”
- 进入备案 阿里云域名首次备案教程 https://www.yunqikan.cn/2255.html
- 域名已经备案完成
- 进入阿里云官网 https://www.aliyun.com/
- 进入控制台
- 点击左侧弹出栏中域名
- 点击解析添加记录按照步骤进行解析 域名解析网上教程很多我在网上随便找了一个教程:https://blog.csdn.net/qq_36135335/article/details/99548040 10min
- 登录阿里云
- 进入控制台
- 进入云服务器ECS
- 进入网络与安全-安全组
- 点击"配置规则"
- 点击"手动添加"
80/80 8080 /8080 888/888 8888/8888
- 远程连接个人阿里服务器
- 进入宝塔官网 www.bt.cn
- 进行下载
注意:下载完成会出现有下面这样一段内容:"(一定要先复制保存下来)"
==================================================================
Bt-Panel: http://公网ip:8888/随机安全入口
username: 随机用户名
password: 随机登录密码
Warning:
If you cannot access the panel,
release the following port (8888|888|80|443|20|21) in the security group
==================================================================
输入 http://公网ip:8888/随机安全入口
输入用户名和密码进行登录
进入首页弹窗推荐你安装相关软件(点击左侧栏中的推荐软件选择版本 点击极速安装进行安装) 需要安装很长一段时间…
点击面板设置:
修改安全入口(不修改临时的就会过期不安全)格式如:/mrkay
修改面板用户:自定义就行用于登录
修改面板密码:自定义就行用于登录
绑定宝塔账号(可绑定可不绑定)
注意事项:
//安装软件之前一定要确保你的阿里云服务器中之前没有安装过Mysql、tomcat等系统环境软件,如果安装了一定要卸载干净再进行安装宝塔推荐软件,否则会安装失败,后期相对麻烦。(如果嫌卸载麻烦一种暴力方式:云服务器系统重置 教程见第6章-其他教程)
1/弹窗中推荐的软件可以安装也可以不进行安装,因为后期你可以在软件商店中单独进行安装.
2/弹窗中的极速安装和编译安装区别主要是编译安装的相对稳定但是安装时间也会相对较长.
3//如果"phpMyAdmin"软件的版本是4.4以上安装的php版本最好是70以上也不要太高,因为太低了后期使 用"phpMyAdmin"工具会出现问题;此工具是用来操作MySql的界面化工具,相当于SQLyog工具.
4//面板设置中的 安全入口、面板用户、面板密码 一定需要修改并且记录下来防止忘记
8888 加入安全组放行 888放行
上面介绍了推荐软件的安装及面板相关设置之后这里还需要安装一些插件和其他软件以及java环境配置:
宝塔源码一键部署插件安装
Java的JDK环境配置(这里可以采用偷懒方式)
JDK环境是Java项目运行的基础,没有配置JDK环境Java项目是无法运行的。
宝塔面板在我们安装tomcat的时候会默认并自动给我们安装一个JDK并配置环境,tomcat7默认安装jdk7
tomcat8默认安装jdk8,所以我们可以直接安装tomcat即可。
安装完毕远程连接云服务器 键入 java -version 弹出相关信息证明JDK安装及配置完成
创建站点的目的是为了让我们访问 域名:端口 就能访问我们部署的项目;
- 进入宝塔面板
- 点击添加站点
- 输入已经解析过的域名:端口 如: www.baidu.com:8088 如果不加端口默认使用的是80端口,没有域名可以使用云服务器的公网ip:端口,如: 127.0.0.1:8088
- 添加备注(备注要见名知意 一般我们可以设置自己要部署的项目的名字)
- ftp 和数据库可以先不进行创建其他保持默认 (如果要创建要和你项目的数据库名保持一致)
站点设置主要是对已经添加的站点进行相关配置(这里主要是进行反向代理的配置)
- 点击已经添加的站点最右侧的设置连接进入设置界面
- 点击反向代理
- 点击添加反向代理
- 代理名称社会为你的项目名称即可
- 目标URL就是访问公网IP/域名之后会被转发到服务器中可以访问的ip:端口(这里我们使用127.0.0.1:端口即可,端口是80可以省略不写)其他保持默认,点击保存即可.
创建数据库是为了项目正常运行和效果数据展示做准备:
进入宝面板
点击 数据库–root密码 对root用户的密码进行修改
注意:一般修改为一个你项目中配置文件比较常用的密码就行
点击添加数据库
注意:这里的数据库名要和你项目中数据库名字一样就行(比如你项目中访问的数据库名字的blog 这里就写blog)
用户名一般也设置为你数据库名字就行,密码设置为root密码就行(为了方便记忆)
其他保持默认点击提交.数据库就创建完成
数据库创建完成,接下来就是向云数据库中导入数据即可.
- 将你window本地中的数据库导出为.sql文件保存到桌面上.
- 进入宝塔面板–数据库–管理
- 就桌面生成的sql导入即可.
//注意事项:
1,点击数据库管理连接或者PhpMyAdmin 页面打不开,可能原因有:PHP版本过低、PhpMyAdmin中设置的版本和PHP的版本不一致、888端口没有放行;(解决方案更新PHP版本为7.0以后版本、设置PhpMyAdmin版本和PHP版本一致、面板和云服务器都放行888端口、"如果以上方法都没有解决就直接卸载nginx重新安装,因为nginx的配置文件中有对PhpMyAdmin端口等信息的相关记录,当然你也可以选择修改,为了简单我是选择的重新安装nginx")
在打包SpringBoot的项目之前需要先对application.yml/application.properties文件进行修改
具体修改如下:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
# 面板中mysql的端口没有修改这里就不需要修改,IP也是用localhost因为此配置文要进行上传,blog要和你面板中创建的数据库名保持一致
url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8
username: root # 宝塔面板中roo用户,一般为root
password: ****** # 数据库中你设置的root密码
jpa:
hibernate:
ddl-auto: update
show-sql: true
logging:
level:
root: info
com.lrm: debug
file: log/blog-dev.log
# 设置application的端口 注意:端口要和你设置站点的端口保持一致
server:
port: 80
使用Maven插件打包项目为jar包
- pom文件中引入maven插件
- 进行打包
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<executable>trueexecutable>
configuration>
plugin>
plugins>
使用宝塔面板进行上传jar包和配置文件
- 进入宝塔面板
- 点击网站
- 点击站点的根目录,跳转到根目录文件夹
- 点击左上角的上传按钮上传jar包和yml文件
运行项目无非就是进入到jar包所在的目录执行命令:
- 远程连接阿里云服务器
- 使用cd命令进入到jar包所在根目录
- 执行命令 java -jar 包名字.jar
- 项目启动并开始打印日志
- 浏览器地址栏输入 域名:端口(或者公网IP:端口)进行访问 80端口可以省略
注意: 如果你4.2步做完并成功访问到页面,恭喜你运气不错;
如果你没有成功说明你没有得到上帝的眷顾,你可能遇到的问题:
- 你使用得站点端口号是80 可能出现错误: 80端口已经被占用
解决80端口占用问题:
一、第一种:通过命令获取出占用80端口的进程,将其"杀死"
netstat -lnp|grep 80 # 查看占用80端口的进程信息,主要看PID ps [pid] #根据PID查看进程的详细信息; kill -9 [PID] # 根据PID杀死进程 ## 使用第一种方法处理完成之后重新启动项目,java -jar 项目名称.jar ## 打印日志项目正常启动,访问,端口占用问题解决
二、第二种优化解决方式:
## 第一种方式存在弊端:当我们解决了端口占用问题之后再次点击数据库--管理(或者PhpMyAdmin)发现又出现了之前的问题2.5.2中提到的页面不存在问题 ## 优化解决 1,查看占用80端口的进程 netstat -lnp|grep 80 ps [pid] #查看详细信息占用80端口是Nginx的master也就是说是Nginx默认使用的端口是80端口,如果我们杀死了Nginx进程那么PhpMyAdmin就没办法访问,如果让Nginx占用80端口使用80端口的项目就没法正常运行和访问. 2,修改Nginx的默认端口 2.1 宝塔面板中点击软件商店--已安装 找到Nginx点击设置--点击配置修改 我们发现在配置的最后一行有 include /www/server/panel/vhost/nginx/*.conf; 这样一句话 (这句是引入Nginx的conf配置文件) 而这些配置文件就是记录的我们宝塔面板中使用到Nginx的相关配置. 2.2 根据目录(/www/server/panel/vhost/nginx)找到相关的配置文件,打开编辑,修改所有80端口为其他没有占用的端口并放行,并在宝塔和云服务器安全组中放行该端口,面板中重启Nginx或者重新加载配置即可。 ## 上面2.2的步骤有点麻烦;我们还可以直接进行粗暴的优化处理:(不推荐) 2.2 我们在2.1步骤中找到include /www/server/panel/vhost/nginx/*.conf;将此句直接注释掉变为 "#include /www/server/panel/vhost/nginx/*.conf;"之后重启Nginx/重新加载配置即可.简单粗暴但是不推荐。(配置文件的定义都有自己的作用,注释掉之后该站点反向代理也将将失效,为了达到效果损失太多) 3,再次启动项目成功,访问PhpMyAdmin都能正常访问.
到此项目已经能够正常启动,但是仅限于在远程阿里云服务器的黑窗口没有断开,顿开远程连接,项目就不能正常运行了,输入域名就无法访问了; 解决方案:使用 screen 工具进行解决
- 远程连接云服务器
- 安装screen 执行命令----> yum install screen
- 为你的项目建立会话 执行命令----> screen -S 项目名
- 查看显示所有会话 执行命令----> screen -ls # 主要看会话名之前的进程号
- 进入创建的会话 执行命令----> screen -r [线程号] # 这也可写 [项目]
- 进入到jar包所在根目录
- 重新执行java -jar 包名.jar
- ctrl + a +d 退出会话 一样能访问
- 补充一下 停掉项目: 进入会话 ---- 快捷键 ctrl + c ---- 键入exit 退出即可
- 停掉项目: 直接杀死会话进程 — 清理会话进程 就能停掉项目了
其他相关命令:
- 杀死指定会话进程 执行命令----> kill -9 [进程号]
- 自动清理死去的进程 执行命令----> screen -wipe
更多相关命令>> https://www.runoob.com/linux/linux-comm-screen.html
注意:
重置云服务器系统是很危险的事情,仅限于个人开发学习时使用即可,在重置之前请先将重要数据进行备份保存.
步骤:
- 进入阿里云官网登录用户
- 进入控制台
- 点击左侧弹出栏中的 “实例与镜像”–“实例”
- 选中自己的实例点击"更多"–“实例状态”–“停止”
- 选中自己的实例点击"更多"—“磁盘和镜像”–“更换操作系统”
- 选择新的操作系统或者镜像类型重新安装即可.
参考链接:https://www.vpsss.net/7777.html
本次录制仅供个人学习记录,还有很多不足甚至错误有待完善和改正。
参考链接:
https://www.fanmingming.com/article/bt-nginx-reverse-proxy.html
https://cangshui.net/3220.html
https://blog.csdn.net/hejunqing14/article/details/50338161
经过上面步骤之后已经能够实现项目的正常运行,但是后期为了做视频资料我将站点全部删除,进行了重新部署,之后80端口出现了问题,站点创建成功,但是访问时却弹出找不到站点错误提示。具体原因分析如下:CDN缓存除、域名解析错误、域名设置错误。但是经过检查这些错误都已经排除,还是没有解决问题。
最终解决方案:
卸载Nginx安装Apache,这里我使用了Apache来写作为web服务器来接收用户请求,原站点域名和端口不变。再次访问域名提示创建站点成功,
但是需要解决的是Apache的配置文件要进行修改:
Listen 81 # 将此端口改为80端口之外端口并放行