之前部署过若干服务器项目,要么就是再winserver2008,要么就是在winserver2012。 曾经也试过用linux作为服务器系统,但是由于上面太多余枯燥便放弃。 这次的实际练习中用到了centos7作为服务器,自己所幸也跟着练习并成功处理一些问题。 特此记录下。
部署web项目,必不可少的jdk,然后有数据库,采用的是Mysql5.7,Servlet容器采用的是tomcat,另外使用了redis作为缓存实现,优化项目。
jdk的配置自己写一篇吧,虽然网上都有很多,但是以后看自己的就行了,懒得到处翻。 也避免了查找中出现的一些不可预见性问题。尽量通过笔记将其永久的记住是最好不过的。
先看服务器上所存在的软件,进行操作
移动到一个特定的目录(推荐),然后解压。
修改配置,相当于windows的path环境变量
需注意,jdk6以后好像都实现了智能还是啥的,有些东西可以不用配。 这里为了确保能运行,将所有的都配上。 最为核心的应该是path, 其余的都是作为附属吧。 然后注意linux命令都是经历了很长时间完善形成的,所以不要怀疑去修改它的大小写或者去探索什么新命令啥的。
测试生效。。
之后部署Mysql了。
更新rpm源,去修改中间的依赖配置,类似修改maven的pom.xml。
yum安装,这种安装方式不用我们去陪什么环境变量啥的,十分方便。
开启mysql服务。 注意这里的查看进程的命令: ps -ef | grep [端口号或者应用名称]
注意默认安装之后会生成一个默认密码,地址位于/var/log/mysqld.log
这里有一个坑。 由于 mysql5.7的安全机制还是比较健全,因此要修改一下密码强度,否则会有想要撞墙的冲动。
几乎所有服务端都应该会有这样一个操作。 一是为了方便,二还是为了方便。 之前总感觉这个多神秘,其实就那样。 再手敲一遍加深记忆: grant ALL PRIVILEGES on *.* to 'automannn'@'%' identified by 'password'; 这里也针对不同的身份,从安全性的角度给予不同权限。大功告成!
接下来是redis,这个先后顺序无所谓的。
解压没商量!
修改redis的配置,这里为了支持远程访问。
将其作为守护进程跑再服务器。
关掉其保护模式,否则远程访问不了。
再当前目录下(redis文件的根目录)make安装。
运行,直接写运行的文件,而非sh启动。 并且指定其配置文件。
测试,采用redis-cli客户端进行测试,会进行ping-pong交互。完成!!
最后一个问题了,就是关于tomcat.。
解压啥的不用说,修改配置文件,这里是因为项目需要,所以可以不用在意。 但是针对于这里,需要注意Context是位于Host节点下。
由于后面的tomcat远程调试的原因,可能会在服务器端开启两个服务。
由于微信指支持80端口的交互,因此这里将端口改为80;
查看启动结果。 注意到这里有个比较重要的命令: netstat -ntlp 还有关于Context的注意事项。
然后由于需要使用到远程调试的功能,所以需要开启tomcat相关的服务。
考虑到权限问题,决定新建一个用户。 新建用户的相关命令: adduser passwd。
linux里面安全性蛮高,所以这里需要注意下。 这与微信那个就冲突了。 咋办呢? 用端口转发,它的意思跟他的名称一样。 做转发的主流的有nigix转发并作负载均衡,之前有过一方面的练习,由于时间关系就不写了,也是跟着大牛练习的。 有时间了写。 还有一种就是 linux中的iptables。 类似于防火墙 。 但是contos7将 iptables换成了firewalld(firewalld也可以做,但是十分麻烦),因此:
ok,大公告成。还差个远程调试了
其地址为 catalina.sh。 增加一个如上参数配置。
之后启动tomcat,发现一个神奇的问题,访问一个页面贼久,而且成功了一次,每次都要等很久很久。 困住了我大半天,之后反思才发现这原来是基于底层方面的一些知识。 算是碰到很大的一个坑,时间关系就直接截图:
可以看到谷歌真的是牛皮。 处理:
然后启动项目问题解决。 关键这个问题只再centos中出现,而windows中并没有这些问题。 所以奇葩。
然后就是远程调试:
然后最终的结果就出了。 完美。。 睡觉!