第一次使用腾讯云服务器部署项目记录与总结
文章目录
- 0.说明
- 1.项目基本介绍
- 2.云服务器项目部署
- 3.总结
0.说明
这个可以说是自己第一次使用腾讯云服务器上线项目,这个过程中遇到了很多的问题,特此写一篇文章记录说明一下;
这个做的是一个关于论坛的项目,虽然技术掌握的不是很好,但是通过体验整个流程,我也知道了做项目的这个具体的流程,以及这个过程中用到的相关的方法,让我知道了什么是重点,后面进行有的放失性的学习,我觉得这个项目目前对于我还是有挑战性的,我仍需不断努力;
1.项目基本介绍
下面的这个链接进入之后首先是一个登录的页面,大家肯定是没有账号的,所以需要点击注册按钮进行这个账号的注册,然后再次进行登录;
http://101.42.52.162:8080/index.html
因为这个项目刚刚部署,所以里面的帖子数量就一条,而且是我当时测试这个功能的时候发送的,里面包含了这个用户的发帖,点赞,私信相关的功能,这些功能后面再谈,我今天主要是想要记录一下我的这个云服务器的上线项目过程中遇到的问题;
下面的这个就是进入之后的页面:包含了相关的功能;
2.云服务器项目部署
下面的这个是我创建了一个新的这个文件夹去保存这个相关的项目部署内容,方便自己进行这个内容的管理
下面的这个就是使用source对于上面的这个项目里面的SQL脚本进行执行,显示的结果就是受到影响的这个行数,这个实际上就是在我们的云服务器的数据库里面去进行建库建表,SQL就是一个脚本,方便进行数据库的创建和表的生成;
这个时候使用show databases这个指令显示的就是我们的这个里面所有的数据库;第一个就是执行脚本之后生成的数据库;
我们使用这个pwd看看对应的目录,把这个结果放到我们的yml文件里面的日志生成的对应的位置,因为我们的yml本地的时候使用的是磁盘存储,这个是需要放到我们的云服务器相关的文件位置,因此这个位置需要进行修改;
下面的这个就是对于yml原来的磁盘的文字进行修改成为上面的这个pwd对应的位置;
下面的这个就是上传我们的java包,执行查看这个效果;
在这个处理java包的过程中,我遇到了很多的困难,但是最后都解决了,我一共进行了4次打包操作,因为只要遇到问题就需要重新打包,重新上传,因为一个jar包里面的这个内容还是很多的,当时我自己是前面两次的这个jar包没有删除,第三次想要继续上传的时候就无法上传了,但是吧之前的废旧的jar包全部删除了之后,这个就可以正常的上传了;
第一次的jar包失败是因为我的这个操作的方式不对:
- 第一步应该是在自己的这个本地的终端上面进行运行,看看有没有问题,没有问题了再上传,我的没有测试,上传之后发现是这个java,javac有一个无法识别出来,后来发现是这个环境变量的配置冲突了,所以第一次的这个jar包失败;
- 第二是是因为我的这个java环境变量配置好了,但是还是不对,这个是因为我的数据库里面的密码写错了,我写的密码是我的本地的密码,但是应该是我们的云服务器里面的密码,所以第二次又错了;
- 这个时候我重新打包,重现上传,这个时候还是我的这个数据库相关的报错,发现是这个数据库的名字不一样,就是我的云服务器里面的数据库的名字和我的这个yml文件里面的数据库相关配置的数据库的名字不一样,因此报错;
- 通过这个过程,我意识到这个正确的流程:第一步先去在自己的终端上面运行,第二部上传之后,不要直接后台运行,直接使用这个java -jar测试一下,看看是不是可以访问,没有问题了再使用nohup进行后台的运行处理流程,也就是上线,这个是最后一步;
下面的这个就是nohup去执行后台运行时候的指令
下面的这个是使用的mv对于我的这个jar包的名字进行重新命名处理,简化这个名称;
下面的这个ps指令是查看那些程序是正在运行的,我们想要停止这个程序可以使用这个kill+PID进程号进行处理,当我们的这个程序部署之后遇到错误的时候(但是一般先自己测试,在使用这个nohup不会出现这个需要杀死进行的情况);
3.总结
上面的叙述比较杂乱无章,我总结一下:
- 在自己的这个IDEA工具里面去打jar包;
- 在自己的这个jar包目录下面去进行这个java -jar 包名 测试,看看有没有问题;
- 上传到我们的云服务器对应的目录下面;
- 云服务器输入指令java -jar 包名 看看线上有没有问题,有问题进行解决;
- 使用上面说的这个nohup进行后台运行,再次进入进行验证,没有问题说明部署成功;
- 在上面的测试过程中遇到了问题需要查看,出现错误的话一般都需要重新进行打包的操作;
- ps -ef | grep java可以查看正在后台运行的程序,我们nohup之后可以查看我们的程序是不是在运行;
- 如果想要把这个运行的程序停下来,可以使用kill+PID进程编号,杀死这个进程;
- 密码是云服务器mysql密码,不是我们的本地的密码;
- yml配置文件里面的数据库的名称需要和我们的云服务器里面的数据库的名字保持一致;
以上就是我遇到的问题的一个总结了,总体先来,收获还是蛮多的;