很久没有发文章了,最近前天无意点开微信公众号助手小程序,看到新增几个关注又减少了几个,还是我太懒啊。没有抓住微信疯狂增长的机会。
之前有一个朋友通过公众号文章搜索到我,并加了微信好友,交流了一些问题,所以我觉得这个平台还是有用处的。所以姑且把最近的一个踩坑记录发出来充数。哪怕能帮到一个遇到同样问题的技术人,也是很幸运的,同时希望借助这个平台结识更多志同道合的朋友。
目录
1、部署准备
数据库执行sql创建数据
数据库设置用户名密码
1.1 需要环境及软件
1.2 基本步骤
1.3 MySQL安装及设置
2. 踩到的坑
2.1 端口被占
2.2 防火墙开放端口
2.3 MySQL的一些错误
2.4 数据库大小写敏感性
2.5 不同系统间文件夹路径问题
3. 最后
事由
3月1号到某单位部署一个项目,折腾了一天,总算是功德圆满,成功跑起来了。
这是我第一次独立部署项目到Linux服务器上,出现了许多问题,我觉得有必要记录一下。总结是技术积累的必经之路。
期间,还被该单位的某领导鄙视了一把,说我不是搞技术的。羞。。不过我是没感觉的了,跟这种人生气不值得啊,只有回家好好练技术了,同时加强沟通能力。
好了,废话不多说了,下面是记录内容。
1. 部署准备
1.1 需要环境及软件
war包 sql数据
Windows连接Linux程序,如xShell, 文件传送程序,如filezilla,
jdk Linux版, redis Linux版, MySQL软件Linxu版, tomcat Linux版
1.2 基本步骤
安装对应版本JDK
注意:一般的Linux发行版本可能已经安装了JDK的开源版本,openjdk,所以首先检查一下Java版本。
如果已经安装可用的版本,则可进行下一步,配置环境变量;否则需要先删除该版本,再来下载安装需要的版本。
解压命令:
可以考虑建立链接到,但不建议直接拷贝到该地址,也可以直接在项目文件夹中存放。
一般需要将安装路径链接到文件夹下。
配置环境变量:
保存退出后,使生效命令:
然后再运行查看是否安装配置成功。
安装Tomcat并测试服务可用
解压命令:
可以考虑建立链接到,但不建议直接拷贝到该地址,也可以直接在项目文件夹中存放。
修改配置,
配置内存大小,保存生效。
配置完成后,启动tomcat服务
启动查看页面是否可见,在logs/下查看catalina.out查看输出日志 。
如果未能访问,有可能是因为端口被占
port aready in use
也有可能是防火墙未关闭,端口未开放;有两种解决方式,一种直接关闭防火墙,这样所有端口就都开放了,不推荐,另一种是开放需要的端口,这种方式更安全点。
需开放 80、3306及所部署的服务端口地址。
vim命令: 复制粘贴整行, 向上翻页向下翻页
安装MySQL数据库并启动服务
可参考http://www.runoob.com/mysql/mysql-install.html
安装Redis并启动服务
可参考https://www.cnblogs.com/KunGe-13/p/8340309.html
部署war包并启动Tomcat
将war包丢到webapp目录下,启动tomcat/bin/startup.sh
1.3 MySQL安装及设置
可参考http://www.runoob.com/mysql/mysql-install.html
数据库执行sql创建数据
进入mysql,运行以下命令执行sql文件,生成数据库表和数据
数据库设置用户名密码
安装后一般是没有用户的,需要设置用户名密码
还需要设置其他用户的访问权限,设置root-%
2. 踩到的坑
2.1 端口被占
问题:port aready in use
解决:修改tomcat/conf/server.xml中的默认端口号,先需要确认修改后的端口未被占用,且在防火墙中开放。
2.2 防火墙开放端口
关闭不好,开关机会改变,永远关闭不安全,所以开放需要的端口。
2.3 MySQL的一些错误
无法访问,3306端口未开放。
2.4 数据库大小写敏感性
Linux发行版中MySQL对大小写敏感,导致代码错误。可修改lower_case_table_names为1,0表示区分大小写。
2.5 不同系统间文件夹路径问题
由于在Windows进行开发,Linux部署时,如果前期的文件夹,如文件上传路径不一致的问题就突显出来了。
解决办法是,在代码中判断平台,然后读取不同的路径;当然如果路径不存在需要创建,Java代码应该能调用系统命令来创建文件夹的。
3. 最后
一些具体的步骤可以自己去搜索,主要记录的自己遇到的问题及解决思路;思想是最重要的,有了思路,问题也就解决了一半。
基本上,先要理清楚思路,大体需要哪些步骤,然后具体的步骤和遇到的问题可以去搜索解决。
重点是遇到问题不要怕,去看log,定位问题,解决之。
部署也是一个程序员需要掌握的技能,而不能仅仅以为是运维的工作就忽视了其重要性。
再次验证了,折腾是技术进步的阶梯。
领取专属 10元无门槛券
私享最新 技术干货