Linux(Centos)安装tomcat并且部署Java Web项目---踩坑
购买云服务器
我使用的是腾讯云, 配置:1核 1GB 1Mbps系统盘:普通云硬盘,Centos系统
登录
腾讯云提供了好几种登录方式
- 最简单的登陆方式是登陆控制台,点击下面的【登录】按钮,使用WebShell登录,这里就不过多介绍了
使用 Linux/Mac OS X 系统的电脑(使用密码登录)
- 打开 SSH 客户端(Mac可使用系统自带的终端)
- 输入
ssh -q -l root -p ip
(公网ip) - 输入 CVM 实例密码进行登录。
使用 Linux/Mac OS X 系统的电脑(使用密钥登录)
- 打开 SSH 客户端(Mac可使用系统自带的终端)。
- 查找您云服务器关联的 SSH 密钥文件本地存放地址。(现在控制台生成SSH秘钥,并下载到本地)
- 您的密钥必须不公开可见,SSH 才能工作。请使用此命令:chmod 400 [密钥文件路径]。
- 输入命令:ssh [-i 密钥文件路径] root@ip (解释:root是账户,ip是公网ip地址)
SSH免密登陆
首先我们在自己的Linux系统上生成一对SSH Key:SSH密钥和SSH公钥.密钥保存在自己的Linux系统上。
然后公钥上传到Linux服务器.之后我们就能无密码SSH登录了.SSH密钥就好比是你的身份证明.
- 在自己的Linux系统上生成SSH密钥和公钥
打开终端,使用下面的ssh-keygen来生成RSA密钥和公钥.-t表示type,就是说要生成RSA加密的钥匙.
1 | ssh-keygen -t rsa |
RSA也是默认的加密类型.所以你也可以只输入ssh-keygen.默认的RSA长度是2048位.如果你非常注重安全,那么可以指定4096位的长度
1 | ssh-keygen -b 4096 -t rsa |
生成SSH Key的过程中会要求你指定一个文件来保存密钥,按Enter键使用默认的文件就行了.然后需要输入一个密码来加密你的SSH Key.密码至少要20位长度.SSH密钥会保存在home目录下的.ssh/id_rsa
文件中.SSH公钥保存在.ssh/id_rsa.pub
文件中.
1 | Generating public/private rsa key pair. |
- 将SSH公钥上传到Linux服务器,可以使用
ssh-copy-id
命令来完成
1 | ssh-copy-id root@ip |
输入远程用户的密码后,SSH公钥就会自动上传了.SSH公钥保存在远程Linux服务器的.ssh/authorized_keys
文件中.
上传完成后,SSH登录就不需要再次输入密码了.但是首次使用SSH Key登录时需要输入一次SSH密钥的加密密码.(只需要输入一次,将来会自动登录,不再需要输入密钥的密码.)
使用scp命令来传送文件时也不需要输入密码
如果你是按照腾讯云的步骤来的话,登录成功后可能会继续让你分区与格式化数据盘,虽然我也扩展了数据盘,但是我发现其实没必要做这一步(主要是我按照官方的步骤一直失败,后来发现已经默认分了一个盘,而且一直处于挂载的状态,也无法卸载,就没再捣鼓),接下来就可以配置部署所需要的环境了
安装JDK(centos默认安装了yum,所以我用yum安装的JDK)
安装步骤
下载tomcat linux安装包: 安装包下载地址
在云服务器创建存放tomcat的文件夹,例如创建一个kencery的文件夹
1
2
3cd /usr/local/
mkdir kencery
cd kencery/然后将下载的tomcat安装包复制到kencery文件夹下(可用cp命令或图形化操作)
我用cp命令没有成功,最后用的是图形化操作,Mac版本的FileZilla,可以直接将本地的安装包拖到云服务器的kencery文件夹根目录下, 然后进行解压
1 | tar -zxv -f apache-tomcat-8.0.29.tar.gz |
解析完成后即可以启动tomcat,检查是否安装成功,命令如下
1 | /usr/local/kencery/tomcat/bin/startup.sh |
出现如上图所示信息,则表示启动成功。这时候我们可以在浏览器中使用http://ip:8080
访问(注:ip为服务器外网ip),如能够显示tomcat的主页,则表示不需要进行任何操作了,如果不能显示,则需要在Linux中开放防火墙的8080端口。
Tips: 在进行这一步的时候,好多次,都不成功,可以通过下面的方式来排除问题
1 | 1.请确定tomcat监听的8080端口: |
如果都设置成功了,访问的时候可能出现一直加载不出来的情况,首次访问的时间特别长,我就在这里遇到了坑,以为没有设置对
Linux中设置tomcat的服务器启动和关闭
- 完成步骤二对tomcat的安装后,接下来就可以部署项目,但是这里存在一个问题,那就是Linux的系统和重启我们每次都需要接路径并且执行命令,比较麻烦,因此我们可以设置成service的形式来实现这个功能。
- 执行命令:
vim /etc/rc.d/init.d/tomcat
,创建脚本文件,在文件中写入如下代码,保存并且退出:
1 | #!/bin/bash |
给文件添加权限,使得脚本文件可以执行,命令为
1 | chmod 755 /etc/rc.d/init.d/tomcat |
将其添加到服务中,命令如下:
1 | chkconfig --add /etc/rc.d/init.d/tomcat |
然后将下面的配置文件加到tomcat中的catalina.sh文件中的最后面,命令如下:
1 | vim /usr/local/kencery/tomcat/bin/catalina.sh |
添加的配置如下:
1 | export JAVA_HOME=/usr/local/kencery/javajdk #javajdk的安装路径,使用echo $JAVA_HOME命令可以读取 |
以上所有工作顺利进行并没有报错,则配置完成,输入下面命令进行验证:
1 | service tomcat start |
1 | service tomcat stop |
Linux中设置tomcat开机自启动
通过步骤三的设置我们可以很方便的启动和关闭tomcat,但这里存在一个问题,那就是当服务器关机重启的时候,服务不能随计算机的启动而自行启动,下面我们将tomcat服务设置为开机启动。
打开Linux设置开机启动文件,将下面的配置文件写入rc.local文件的最后,命令如下:
1 | vim /etc/rc.d/rc.local |
添加的配置内容如下:
1 | export JAVA_HOME=/usr/local/kencery/javajdk |
tomcat依赖于java的JDK,所以设置的时候将JDK也同步导入。
完成上面的设置后我们可以将CentOS关机重启一下,看tomcat是否成功自启动
给tomcat设置用户和密码登录
当tomcat安装完成之后,访问http://ip:8080
即可以看到tomcat发布的网站,若要管理我们发布的网站,就需要登录tomcat,下面就进行用户名和密码的设置。
在tomcat安装包下面的conf文件下含有一个tomcat-usrs.xml文件,修改此文件即可,命令如下:
1 | vim tomcat-users.xml |
在打开的xml配置文件后面写入下面这段配置内容后,【:wq】保存并且退出即可。
1 | <role rolename="admin-gui"/> |
在这里会出现一个问题,因为tomcat-users.xml里面有注释的用户设置信息,取消注释,用文件提供的用户名和密码去访问的时候,会出现403错误,什么原因呢?这是因为我们没有指定用户所拥有的权限。如若我们现在想访问tomcat中图形化管理应用的功能,也就是Manager App,就需要指定manager-gui的权限,如果想访问host manager就必须指定admin-gui权限,故而需要上面所示的配置内容。
配置完用户名和密码之后,需要重新启动tomcat,命令如下
1 | service tomcat stop |
1 | service tomcat start |
重启服务之后,检测是否登录成功,输入用户名和密码登录进入系统,则说明登录成功
将Java Web项目发布到tomcat8.0下面并且访问展示
以上所有工作都完成之后,完美就可以将打包的JavaWeb程序发布到tomcat下即可
tomcat默认的发布web项目的目录是:webapps
将导出的war包拷贝到webapps根目录下,随之tomcat的启动,war包可以自动被解析。
然后在浏览器中输入路径链接,查询是否安装成功
参考链接
Linux系统下的ssh使用(依据个人经验总结)
SSH无密码登录:只需两个简单步骤 (Linux)
Linux(Centos)安装tomcat并且部署Java Web项目
Linux学习笔记
MacPro 利用SCP上传下载Linux服务器文件
腾讯云访问不了80端口,与8080问题
CentOS下安装JDK的三种方法
查看Tomcat配置的端口