目录
1 | 1. 部署准备 |
事由
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版本。
1 | ~# java -version |
如果已经安装可用的版本,则可进行下一步,配置环境变量;否则需要先删除该版本,再来下载安装需要的版本。
解压命令:
1 | ~# tar zxvf jdk...tar.gz |
可以考虑建立链接到 /usr/local
,但不建议直接拷贝到该地址,也可以直接在项目文件夹中存放。
一般需要将安装路径链接到/usr/local/
文件夹下。
配置环境变量:
1 | ~# vi /etc/profile |
1 | # 路径视自己的安装路径决定 |
保存退出后,使生效命令:
1 | ~# source /etc/profile |
然后再运行java -version
查看是否安装配置成功。
- 安装Tomcat并测试服务可用
解压命令:
1 | ~# tar zxvf apache-tomcat-7.0.65.tar.gz |
可以考虑建立链接到 /usr/local
,但不建议直接拷贝到该地址,也可以直接在项目文件夹中存放。
修改配置,vi ~/tomcat/bin/catalina.sh
1 | JAVA_OPTS=”-Xms128m -Xmx256m -Xss512k -XX:PermSize=64m -XX:MaxPermSize=128m” |
配置内存大小,保存生效。
配置完成后,启动tomcat服务
1 | # 启动 |
启动查看页面是否可见,在logs/下查看catalina.out查看输出日志 。
如果未能访问,有可能是因为端口被占
port aready in use
也有可能是防火墙未关闭,端口未开放;有两种解决方式,一种直接关闭防火墙,这样所有端口就都开放了,不推荐,另一种是开放需要的端口,这种方式更安全点。
需开放 80、3306及所部署的服务端口地址。
1 | # 设置8080端口可被访问 |
vim命令: 复制yy
粘贴p
整行, 向上翻页ctrl+b
向下翻页ctrl+f
- 安装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文件,生成数据库表和数据
1 | souce ..../data.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表示区分大小写。
1 | 1.用ROOT登录,修改/etc/my.cnf |
2.5 不同系统间文件夹路径问题
由于在Windows进行开发,Linux部署时,如果前期的文件夹,如文件上传路径不一致的问题就突显出来了。
解决办法是,在代码中判断平台,然后读取不同的路径;当然如果路径不存在需要创建,Java代码应该能调用系统命令来创建文件夹的。
3. 最后
一些具体的步骤可以自己去搜索,主要记录的自己遇到的问题及解决思路;思想是最重要的,有了思路,问题也就解决了一半。
基本上,先要理清楚思路,大体需要哪些步骤,然后具体的步骤和遇到的问题可以去搜索解决。
重点是遇到问题不要怕,去看log,定位问题,解决之。
部署也是一个程序员需要掌握的技能,而不能仅仅以为是运维的工作就忽视了其重要性。
再次验证了,折腾是技术进步的阶梯。
- 本文作者: Linking
- 本文链接: https://linking.fun/2018/03/04/Linux下部署web服务踩坑记/
- 版权声明: 版权所有,转载请注明出处!