在本地linux模拟服务器部署javaweb项目
文章目录
前言
因为linux的课外拓展选择了数据库应用,但是又不想只是在linux的mysql上手动建表,这样的操作没有什么意义,又因为之前学了javaweb项目,所以索性就把后续的项目部署给做了。
由于没有买linux的云服务器,所以就在本地的虚拟机linux上模拟成服务器部署,整体的步骤差不太多,用xshell连接的是虚拟机的地址罢了!
话不多说就开始吧,第一次看了很多视频和博客,最后也算是部署成功了,但是第二次再部署就出现错误了,连最开始的打包我都忘记了步骤,也就相隔半个月吧,就很难过!
所以一定要写博客,记笔记,这样后面也好复习!
mysql和jdk的安装包就自己找一下了,网上很多,以及最后发现都可以用宝塔装,一键安装,真香!想看宝塔的请到最后!
一、将Javaweb项目打包成war包
忘了第一次是怎么打包成功的,后面打包也出来了但是就是部署访问不了,403错误就很难受,到现在也没解决!
1.打开项目结构
2.打开工件(即Artifacts) 并点开+号 选择归档(Archive)选择要打包的那个模块 点击应用和确定
这里呢和我收藏的那个不太一样,如果你们没有成功,就看看这个,也许它的才是对的
IDEA中如何将一个JavaWeb项目打成war包.
3.构建(Build)工件=生成war包!
bulid之后就会生成war包了,此时到目录里就可以看到war包了,一般在out的artifacts里,可以在输出目录里看到在哪里!
二、配置环境
1.安装java
参考韩顺平linux的环境安装(用到xftp和xshell),建议看他的视频
韩顺平linuxb站视频
2.安装mysql(视频步骤)
用xftp传到指定 /opt/mysql目录(这个要自己建一个)记得用root用户登陆,退到最外面的目录下建立
查看是否传输成功
解压
命令:
tar -zxvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
删除自带的Mariadb数据库
命令:
rpm -e --nodeps mariadb-libs
rpm -e --nodeps marisa
检查是否删除干净 如果找不到了 则删除干净了!
依次输入以下命令 安装
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
启动mysql
systemctl start mysqld.service
查找root用户密码 (找不到就是空密码)
grep "password" /var/log/mysqld.log
(注意一定要有空格 我因为没有空格没找到 还以为是空密码)
进入mysql
mysql -u root-p
设置密码安全策略为0(密码可以设的比较简单 在生产环境要设置的很复杂)
set global validate_password_policy=0;
设置密码(1234这种太简单的过不去)
set password for 'root'@'localhost'=password('1234');
使密码生效(不写这个还不能生效)
flush privileges;
退出再登陆 输入自己的密码就可以登陆了
进入数据库使用
ps:这里插入中文数据出现一个报错
插入数据出现错误:
ERROR 1366 (HY000): Incorrect string value: '\xE5\xAE\x89\xE5\xBE\xBD...' for column 'address' at row 1
出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中。
解决办法:这是因为建立数据库表的时候没有将编码设置成utf-8,可以在创建数据库表的时候在最后加一句CHARACTER SET utf8 ENGINE INNODB;
Mysql建库:
建表
插入数据
查看插入的数据:
Navicat连接操作:
连接前要关闭数据库防火墙
命令:systemctl stop firewalld
(注意这里每次重启电脑再连接时好像都要关一下 有点麻烦)
更改访问权限,我的数据库密码是 root ,最后一个引号的内容要自己改成自己的密码,这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限,%百分号表示允许任何IP访问数据库。
刷新一波
退出再重启
连接(这个连接名就是你linux虚拟机的ip地址,在xshell那里就可以看到了!)
3.宝塔安装tomcat(狂神的视频)
【狂神说Java】服务器购买及宝塔部署环境说明
真的很推荐这个视频,讲的很清晰很好用!
还可以看韩顺平的,我当时好像是按照他的视频安装的宝塔!
韩顺平linux
4.部署项目
在宝塔上找到tomcat的文件夹webapps,把war包放到这个文件夹下就会自动解压了,然后就可以访问了!
访问成功
还可以在外面访问,这样就像在服务器上部署一样
总结
总的来说步骤还是比较多的,但是一旦第一次配置好后,后面就只需要放war包就可以部署了。而且宝塔还是很方便的,其实mysql和jdk也都可以用宝塔部署,这样更方便,但是学linux怎么能不自己手动敲一下呢,后期再部署修改后的 项目的war包到tomcat上时就报了403错误,没有找到错误的原因在哪,也希望有同样问题的同学可以评论区解答!
那么我是如何解决这个问题的呢!我在解压后的war文件里直接替换了我修改的文件,通过宝塔的文件功能(真的很好用),然后再次访问就发现已经部署成功了!所以有同样问题的可以借鉴这个方法!