Linux云服务器配置Tomcat、JDK、MySQL、Nginx
近期搞了一下阿里云服务器,配置服务器的时候遇到了许多的问题,通过博客来记录一下
配置服务器我使用了两个工具:
- xftp:可视化操作服务器文件
- xshell:命令行操作服务器
xftp和xshell都需要连接服务器(ssh),通过ip(公网)和密码连接,连接过程简单,不过多赘述。
一、配置JDK(java):
查看是否有默认安装的jdk:
rpm -qa | grep java
rpm -qa | grep jdk
如图所示、则安装了JDK:
如果没有安装:
rpm -ivh jdk-8u201-linux-x64.rpm
参数解析:
-i 安装
-v 显示正在安装的文件信息
-h 显示安装进度
二、配置Tomcat:
配置Tomcat非常的简单,总结如下:
- 下载Tomcat的压缩包
- 放到服务器上,解压
- 启动tomcat服务
具体步骤如下:
下载Tomcat压缩包:
Tomcat下载地址
通过xftp将tomcat压缩文件放入服务器中:
1. 在服务器中的 /usr/local 位置新建一个tomcat文件夹:
mkdir tomcat
2. 把压缩包拖动到tomcat文件夹中
3. 解压:
tar -zxvf apache-tomcat-8.5.63.tar.gz
参数解析:
-z 通过gzip支持压缩或解压缩
-x 解压 -c 压缩
-v 在压缩或解压缩过程中显示正在处理的文件名
-f f后面必须跟上要处理的文件名。不能写成这样 tar -zxfv
解压之后目录是这样的:
4. 进入 /usr/local/tomcat/apache-tomcat-10.0.6/bin 目录:
cd /usr/local/tomcat/apache-tomcat-10.0.6/bin
5. 启动tomcat:
./startup.sh
注意:./shutdown.sh 为关闭tomcat命令
6. 查看tomcat是否启动:
ps -ef|grep java
如图所示,tomcat启动成功
tomcat启动成功后,检查防火墙:
systemctl status firewalld.service
如图所示,防火墙已开启(active):
防火墙的其他命令:
- 关闭防火墙:systemctl stop firewalld.service
- 开启防火墙:systemctl start firewalld.service
- 重启防火墙:systemctl restart firewalld.service
开放8080端口:tomcat默认是8080端口
注意:开放8080端口后,便可以远程连接,而不被墙,导致无法连接
开放端口:
firewall-cmd --permanent --zone=public --add-port=8080/tcp
重启:
firewall-cmd --reload
检查端口是否可用:
firewall-cmd --zone=public --query-port=8080/tcp
结果:出现success、success、yes表示设置成功,端口可用
在aliyun中开放8080端口:
检验成果:
在浏览器中远程访问:
链接:服务器ip:8080
三、配置nginx:
检查是否安装GCC:
yum list installed | grep “gcc”
如下图,表示已安装:
没有安装,便安装一下即可,安装GCC:
yum -y install gcc
安装nginx依赖插件:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
新建一个目录,用来存放nginx:
新建目录后的地址:/usr/local/nginx
cd /usr/local
mkdir nginx
进入到nginx目录再下载nginx安装的压缩包:
wget https://nginx.org/download/nginx-1.16.1.tar.gz
解压:
tar -zxvf nginx-1.16.1.tar.gz
配置nginx,把nginx安装到/usr/local/nginx:
./configure --prefix=/usr/local/nginx
make
make install
在/usr/local/nginx目录下检查是否安装成功:
./sbin/nginx -t
提示如下,表示安装成功:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动nginx:到/usr/local/nginx/sbin目录下
./nginx
查看是否启动成功:
netstat -tunpl|grep nginx
如下图,启动成功:
nginx的其他命令:
停止:
./nginx -s stop
重启:
./nginx -s reload
检验成果:
在浏览器中输入服务器ip即可,出现如下画面,表示启动成功:
设置nginx开机自启动:
在/etc/rc.d/目录中找到 rc.local 文件,在文件的末尾添加如下代码:
/usr/local/nginx/sbin/nginx
保存
nginx配置:
nginx配置找到nginx.conf这个配置文件即可,文件地址:/usr/local/nginx/conf
配置项就不过多赘述
四、配置MySQL:
参考别人博客:配置mysql
注意:按照如上博客配置完成之后,如果本地无法连接到远程的mysql数据库,记得一定要到阿里云中设置,因为防火墙中是不会默认放开3306端口,如果不设置,会被防火墙拦截,导致无法远程连接,过程如下:
使用Navicat连接远程mysql:
linux中mysql的一些常用命令:
重启:systemctl restart mysqld.service
停止:systemctl stop mysqld.service
查看状态:systemctl status mysqld.service
配置开启自启动:systemctl enable mysqld
刷新配置:systemctl daemon-reload
注意:刚刚配置的服务需要让systemctl能识别,就必须刷新配置
至此java web环境的配置基本完成
五、打包springboot项目,部署到服务器上:
在idea中打包:默认jar包
默认打包的类型是jar包,如果想要打包成war包,只需要在pom.xml文件中,添加如下代码即可:
<packaging>war</packaging>
将打包好的jar包放入服务器中tomcat中的webapps目录下:
配置nginx:
启动springboot项目:
- 进入到jar所在的目录,webapps中
- 执行命令:
java -jar jar报名.jar --logging.file=path/name.log
java -jar app-0.0.1-SNAPSHOT.jar --logging.file=path/name.log
效果:
3. 在浏览器中发起请求:
http://服务器ip:5000/get_data/
4. 发现问题
如上所得,在我们的电脑上已经可以访问服务器上的springboot项目,但是使用上述命令启动springboot项目,过一段时间springboot项目就会自动关闭,这个问题如何解决?
使用如下命令,可永久启动:
cd /usr/local/tomcat/apache-tomcat-10.0.6/webapps
nohup java -jar app-0.0.1-SNAPSHOT.jar --logging.file=path/name.log &
如果后期springboot项目更改,如何重新启动?
如果直接使用命令行启动:使用如下命令,是为了更好的演示错误信息,因为有日志
java -jar app-0.0.1-SNAPSHOT.jar --logging.file=path/name.log
报错:端口被占用,无法启动项目
正确的方法:
查看是否有springboot项目在运行:
ps -ef | grep java
上图所得,有springboot项目在运行,直接杀死该进程,自然会关闭springboot项目,解除端口占用:
kill -9 172174
重新启动项目:
cd /usr/local/tomcat/apache-tomcat-10.0.6/webapps
nohup java -jar app-0.0.1-SNAPSHOT.jar --logging.file=path/name.log &
或
java -jar app-0.0.1-SNAPSHOT.jar --logging.file=path/name.log
项目便可以启动成功