Java Web项目部署在linux服务器
1.情况说明:
本Java Web项目原先部署于Windows的服务器上,上线的不久后,由于存在SQL注入漏洞,被下令整改,最后决定,从Windows服务器迁移到linux服务器上,增加安全性。
本次情况是linux服务器在远处,因此需要在windows上远程使用ssh 方式远程登录 linux 服务器,配置项目的运行环境以及部署本web系统,最后解析域名,绑定ip,使项目能上线完美运行。
为了防止以后还遇到类似情况,特此记录下来,仅供参考。
(注-由于记录是后来补写的,所有有些图片是另外做演示的时候截的。但是不影响,主要看命令和步骤。)
2.使用工具:
上传文件工具 >> WinSCP ,(百度下载)
远程登录工具 >> Putty,(百度下载)
JDK1.7安装包 + tomcat安装包 +mysql安装包 + 项目war包。(百度下载)
联网的Windows系统 + 联网的linux服务器(Centos6.9版)。
3.实操记录
1.使用putty工具远程连接linux服务器:
打开下载的putty工具,然后输入自己的linux服务器ip地址,然后出现ssh终端,输入linux服务器的用户+密码登录。
远程登录linux服务器(图是后来补加的,是ubuntu系统,但是当时操作的是centos6.9的系统):
2. 检查有没有自带java和mysql
由于需要部署web项目的运行环境,所以需要先检查本linux服务器下有没有自带着其他环境。
命令:
rpm -qa|grep java
rpm -qa|grep mysql
图:
结果显示如果有环境,那你可以删除或者是你觉得适用本项目,那么留着也行。如图,我当时是卸载了mysql的。
卸载jdk和mysql命令:
yum remove *openjdk...*
yum remove *mysql....*
反正最后确保了linux服务器上没有web项目所依赖的环境以后,我们开始安装环境。
3.安装JDK1.7(按实际项目需求而选择版本)
我在我的linux服务器的/home下新建了三个文件夹:mysql + tomcat + JDK 。
然后回到Windows系统下,下载好适用于linux版本的jdk安装包。下载地址:jdk1.8_171 版本下载。
下载完成以后。
打开 WinScp 工具,进行文件跨域传输:把jdk安装包上传到linux服务器上。
如图:填入linux服务器的账号密码和ip地址。
上传jdk到linux服务器下:
上传完成以后。
去linux服务器上 》》查询上传成功:
解压命令:
tar -zxvf jdk-7u80-linux-x64.tar.gz
JDK安装路径:/home/JDK1.7/jdk1.7.0_80
配置JDK的环境变量:
在/etc/profile文件中添加变量【对所有用户生效(永久的)】
命令:(切换到root权限哟)
su
vim /etc/profile
然后在最后面加下面的命令(路径对应自己的):
export JAVA_HOME=/home/jdk1.7/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境生效:
source /etc/profile
查看安装版本:
命令:Java –version
这样就安装好了jdk环境。
4.安装tomcat7.0:
同样的,先在Windows系统上,下载好tomcat的安装包以后,使用 winScp 工具上传到linux服务器的/home/tomcat7 文件夹下。然后查看是否上传了:
解压压缩包:
tar –zxvf tomcat7.0xxxx(名称根据自己的而定)
解压以后,进入bin文件夹:
cd /home/tomcat/apache-tomcat-7.0/bin
ls
查看其下所有文件。
启动tomcat命令:
./startup.sh
关闭tomcat命令:
./shutdown.sh
查看Tomcat是否以关闭命令:
ps -ef|grep java
出现如下界面就是没有关闭tomcat:
出现如下界面就表示tomcat关闭成功:
到这里就安装好了tomact环境。
5.安装mysql5.7:
同样的,先在Windows系统上,下载好mysql的安装包以后,上传mysql安装包到linux服务器的/home/mysql文件夹中。
这里注意一下:
有的linux系统安装mysql的过程中有很多麻烦,如果你失败了。那么需要彻底卸载mysql,再重新安装,卸载如下:
1.检查mysql rpm相关的包是否安装并去除:
2.将依赖包一并删除
3.再次查询是否删除干净
正确的mysql安装参考地址:
mysql5.6.15安装步骤
查看错误日志:(安装出错要学会看日志文件)
关于mysql的一些命令:
• 登录mysql:
mysql -u root –p
输入密码即可登录。
或者在终端中进入mysql的安装路径,使用
bin/mysql -u root –p
然后输入密码, 即可登录。
(登录前需要先检查mysql服务是否开启哟?)
• 启动服务:service mysqld start
• 停止服务:service mysqld stop
• 重启服务:service mysqld restart
• 重载配置:service mysqld reload
启动服务并查看状态:
命令:service mysql start
显示结果:
• Starting MySQL… [确定]
命令:service mysql status
显示结果:
• MySQL running (31724) [确定]
查看服务器进程和监听的默认端口:
命令:netstat -anpt | grep mysql
显示结果:
• tcp 0 0 :::3306 :::* LISTEN 31724/mysqld
修改mysql用户的root密码:
进入mysql中,修改密码命令:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
一些其他问题:
1.mysql报错授权问题
=查看日志出现mysql的拒绝连接问题。
解决如下:进入mysql界面下:
mysql>
grant all privileges on . to ‘root’@’localhost’ identified by ‘root’ with grant option;
关键词解释:
root’@’localhost:是用户
root:是密码
2.mysql 报错没有授权的写权限:
发现无密码条件下,没有授权的写权限
mysql> flush privileges;
好了,到这里,我们就配置好了需要的javaweb项目的运行环境。下面就开始把web项目迁移到linux服务器上。
6.上传web项目的sql数据库文件:
首先去Windows上把sql数据库文件通过winSCP上传到linux服务器上。
然后进入linux 服务器的mysql中,新建一个数据库名,设置utf-8的格式:
新建一个数据库命令:
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
如果你忘了设置为utf-8的格式:
更改数据库的字符编码
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
使用该数据库:
use db_name;
导入xxx.sql 文件 到 数据库中:
source /home/xxx/xxxx.sql ;
导入成功后,查看各张表是否也成功。
如图:
7.上传项目war包到linux服务器:
将需要部署的web项目使用eclipse或者myeclipse等开发工具打包成war 包 的形式。
然后通过 winscp 工具上传到 linux 服务器上的tomcat的wabapps文件夹下。
其次,需要在tomcat的conf文件夹下的server.xml中加入如下的语句:就是使tomcat运行时候指向的web项目的所在地:
<Context path="" docBase="/home/tomcat7/apache-tomcat-7.0.86/webapps/xiaotuanwei20171116" debug="0" reloadable="true" />
实际上就是指明tomcat运行的war包地址:
(适用于迁移到其他的系统时使用,不是原来项目开发的系统上。)
如图:
8.运行项目查看是否正常:
启动tomcat,明确tomcat已经启动后:
在其他或本机的浏览器上输入地址来查看是不是成功:
1.访问tomcat:
在你的Windows系统上的浏览器中输入: http://192.168.0.xxx:8080/
能打开tomcat页面则证明linux服务器的tomcat服务启动成功:
(要保证两个系统之间是能ping通的)
访问自己的web系统:
输入:http://192.168.xxx.xxx:8080/find_Academic
出现自己的项目就部署成功了。你就可以查看自己系统的功能是不是都正常的。
9.将端口改为80,实现ip即可访问项目:
如果要上线运行一个项目,只要一输入域名网址就可以访问项目,也就是实现通过访问ip地址就可以访问项目的意思。
那么就需要把tomcat的8080端口改为80端口。
正确的操作应该是:
注意:1024以下的端口需要root权限的用户才能访问,所以你的配置需要要root用户下。
确保tomcat的server.xml文件中端口为8080!注意是8080!
然后终端下输入如下命令:(不管在哪个路径下都可以)
Iptables –t nat –A PREROUTING –p tcp –dport 80 –j REDIRECT –to-port 8080
这句话就是说访问80的时候链接到8080上,这样的话,便于项目上线部署,使用域名和ip绑定以后,直接输入域名就进入了项目的界面。
最后浏览器下输入:
访问系统:http://192.168.xxx.xxx/find_Academic
如图:
到处,整个Java Web项目部署在linux服务器操作记录完成。
10.部分细节:
在tomcat的地方,有一些细节问题:
验证tomcat是否运行正常的方法:
启动tomcat:
命令:/home/tomcat7/apache-tomcat-7.0.86/bin/startup.sh
查看控制台输出信息:(项目小)
命令:tail -f logs/catalina.out
或者:
(实用)进入logs里,查看日志:(项目大)
不停的刷 cat logs/catalina.out 命令,不停刷!!!
然后日志不断更新,最后看见启动成功即可。
查看进程:
查看进程所占用的端口:
Tomcat的进程是8080,进程号是17939
查看日志地址: