阿里云CentOS下部署JavaWeb项目完整教程
准备工作
所需工具
-
jdk
可以去官网根据实际需求选择。在这里,提供1.8版本的网盘地址:jdk8 (访问码:bvt5)
-
Xshell
这一个是收费软件,但是有个人版本,可以免费使用。我们可以使用它通过ssh对主机进行远程。对于安装与使用,这里推荐一个博客,记录的比较全面,可以参考一下:Xshell使用教程
-
Xftp
这一个软件用来管理远程主机的文件,同时也可以用它传输文件,操作很方便。安装以及使用和Xshell类似,可以参考上面的链接给出的地址进行下载安装。
-
apache tomcat
可以去根据需求去官网下载。这里给出Tomcat8版本的网盘地址:tomcat8 (访问码:5tcq)
Linux常用命令行操作
-
查找某个文件所在位置
find / -name 要查找的文件名称
-
vim基本操作
-
进入
vim 要编辑的文件路径
vim /etc/profile
-
编辑模式
一般按
i
或I
进入编辑模式 -
退出
编辑完成后首先按esc,退出当前操作,然后按下面的命令进行相应的操作
-
:wq
保存并退出 -
:wq!
强制保存并退出 -
:q!
强制退出,并放弃当前更改 -
q
不保存文件,退出
输入命令后回车即可。
-
-
使配置文件生效
source 你所编辑配置文件的目录
source /etc/profile
-
-
跳转目录
cd 你要跳转的目录
cd /usr/local/Java
-
重启服务
service mysqld restart
实际使用将
mysqlld
换成其它服务即可。 -
解压安装包
tar –zxvf 安装包名称
tar –zxvf jdk-8u131-linux-x64.tar.gz
-
移动文件
mv 要移动的文件名称 目标目录
修改阿里云实例密码
准备文件
登录成功后
然后将之前下载好的jdk安装包,以及tomcat安装包分别放到指定的目录下面。(可以直接拖拽文件传输)
安装JDK
-
打开Xshell并连接到主机
-
切换到jdk安装包所在目录
cd /usr/java/jdk/
-
使用解压命令进行解压
tar –zxvf jdk-8u161-linux-x64.tar.gz
注意:文件名称需要根据实际情况而定
-
删除安装包
rm -f jdk-8u161-linux-x64.tar.gz
注意:可选操作,也可以使用Xftp进行删除
-
编辑全局配置文件
vim /etc/profile
注意:vim的基本操作可以参考前面的linux常用命令,进入后按
i
或I
键进入编辑模式,编辑完成后,先按ESC键,然后按:wq
保存并退出 -
在文本最后添加
export JAVA_HOME=/usr/develop/java/jdk1.8.0_161 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
注意:也能是在第一次出现export语句下面添加,或者在第一段代码结束的地方添加。根据实际情况而定,后面有方法判断是否配置成功,如果不成功,可能是添加的位置错了,多尝试几个位置试试。
-
使配置文件生效
source /etc/profile
-
检查是否成功
java -version
注意:如果出现java版本信息,则说明配置成功,否则失败。如果失败,请检查在文本中添加的命令的位置。
安装tomcat
-
切换到tomcat安装包所在目录
cd /usr/java/tomcat/
-
使用解压命令进行解压
tar -zxvf apache-tomcat-8.5.56.tar.gz
注意:文件以及目录名称需要根据实际情况而定
-
删除安装包
rm -f apache-tomcat-8.5.56.tar.gz
-
切换到tomcat的bin目录下
cd /usr/java/tomcat/apache-tomcat-8.5.56/bin/
-
编辑 setclasspath.sh 脚本
vim setclasspath.sh
注意:vim的基本操作参考上文
-
添加以下内容
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_161 export JRE_HOME=/usr/java/jdk/jdk1.8.0_161/jre
-
启动tomcat进行测试
注意:此时目录应仍在tomcat的bin目录下
./startup
-
如果出现
则说明已经启动成功。
-
测试
在浏览器中输入
服务器ip:8080/
进行测试,如果可以跳转到tomcat官网,说明成功。
访问出现404
在配置完tomcat后,可以正常启动,但是访问出现404。出现这种情况是因为阿里云没有将8080端口添加到安全组,需要我们自己手动添加。
配置完成后可以重新在浏览器发起请求,如果可以进入tomcat官网,说明成功。
配置mysql
mysql的配置,我参考了简书的一位同学的博客,写的很清晰,按照步骤一步一步来就行了。这里给出博客地址:mysql配置
部署war包
IDEA将web应用打包成war包
File ——> Project Structure ——> Artifacts
war包生成的位置,可以根据第一张图,被打码那个路径的位置进行查找。
部署
打开Xftp,找到tomcat下的webapps
将要部署的war包复制到该目录下,开启tomcat后,tomcat会自动将war包解压,至此,就完成了部署。
测试
在浏览器中输入下面格式的url进行测试
服务器ip:8080/war包的名称/xx
注意:默认将war包的名称作为项目名称。
mysql查询异常
乱码
如果是查询出来的结果为乱码请先检查IDEA项目编码,文件编码,mysql默认编码。
如果Java将中文参数传递给mysql时出现乱码请按照以下格式填写url:
jdbc:mysql://localhost:3306/pet?useUnicode=true&characterEncoding=UTF-8
版本不同出现的错误
本人在使用时遇到的一个异常:
Expression #12 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘pet.a.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
出现的原因
这个和mysql的版本有关,我之前用的是mysql5.6以前版本,对group by语句的使用没有太多限制,但是更新版本后就出现了这个问题。
解决方案
-
首先查找mysql配置文件 my.cnf
find / -name my.cnf
-
使用vim对配置文件进行编辑
vim 查找到的目录
例如我的是:vim /etc/my.cnf
-
动到文件底部赋值如下内容,然后保存并退出输入模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
-
重启mysql服务
service mysqld restart