Linux部署web服务踩坑记

很久没有发文章了,最近前天无意点开微信公众号助手小程序,看到新增几个关注又减少了几个,还是我太懒啊。没有抓住微信疯狂增长的机会。

之前有一个朋友通过公众号文章搜索到我,并加了微信好友,交流了一些问题,所以我觉得这个平台还是有用处的。所以姑且把最近的一个踩坑记录发出来充数。哪怕能帮到一个遇到同样问题的技术人,也是很幸运的,同时希望借助这个平台结识更多志同道合的朋友。

目录

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,定位问题,解决之。

部署也是一个程序员需要掌握的技能,而不能仅仅以为是运维的工作就忽视了其重要性。

再次验证了,折腾是技术进步的阶梯。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180304G15L8R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券