Linux下JAVA WEB服务器的搭建一(JDKMYSQLTOMCAT)

Posted 孔子-说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下JAVA WEB服务器的搭建一(JDKMYSQLTOMCAT)相关的知识,希望对你有一定的参考价值。

目录

1、JDK1.8的安装配置

1.1 环境检查

1.2 JDK1.8的下载

1.3 JDK1.8的安装

1.4 JDK1.8的配置

2、MySQL8的安装配置

2.1 环境检查

2.2 mysql 彻底卸载

2.3 下载 MySQL8 安装包

2.4 安装 MySQL8

2.5 MySQL8配置

2.6 开启root远程访问

2.7 Ubuntu下打开3306防火墙

2.8 Centos7打开3306防火墙

2.9 开机自动启动设置

3、TOMCAT的安装配置

3.1 tomcat9 的下载

3.2 tomcat9 的安装

3.3 tomcat9 的配置

3.4 tomcat9 的启动

3.5 tomcat9 的停止

3.5 ubuntu 防火墙开启tomcat端口


要部署普通的java web项目,需要在linux上搭建好web服务器运行环境,包括JDK、tomcat、mysql、redis、nginx等,本文主要介绍相关软件的下载安装配置。linux系统采用的是ubuntu。

如果我们是装了有一段时间的Ubuntu系统了,最好先输入:sudo apt-get update  回车,如果不先运行这条命令,可能在安装的时候会出现需要更新的错误提示信息,所以为了避免麻烦,我们就在一开始先输入这条命令。

1、JDK1.8的安装配置

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

1.1 环境检查

1) 检查系统中的jdk版本

java -version

如果有Command 'java' not found...类似的提示,表示系统之前没有安装jdk或者没有配置环境变量。

2)检查系统是否安装jdk

rpm -qa | grep java

通过以上命令可以检查系统是否安装java软件,如果结果为空,表示系统没有安装jdk(rpm命令用来管理rpm文件 ,-qa   查看安装信息,grep命令用来搜索Linux的一些软件信息)。

  • 如果rpm命令不识别,可以使用apt命令(ubuntu) / yum命令(CentOS)安装。
ubuntu的安装命令为: apt install rpm
CentOS的安装命令为: yum install rpm

 查询结果为空,表示该linux系统没有安装过java环境。

3)系统已安装JDK

如果系统已安装JDK,且不符合自己的要求,则通过以下命令卸载:

rpm -e --nodeps 要卸载的文件名 (文件名通过rpm -qa | grep java获取)
若卸载的文件有多个版本(rpm -qa | grep java命令返回多个结果),可以通过以下命令卸载。
rpm -e –allmatches 要卸载的文件名

yum卸载命令(CentOS)
yum remove *openjdk*

1.2 JDK1.8的下载

方式一:在线下载JDK安装包,下载到 /usr/local/目录下存jdk压缩包。

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

方式二:网盘下载

jdk:jdk-8u291-linux-x64.tar.gz
链接:https://pan.baidu.com/s/1iwBwwDkUetcQ6c_rioguyw 
提取码:8u29

方式三:windows上通过官网下载JDK LINUX安装包(需要登录oracle账户)

1) 访问oracle官网,点击首页的java轮播图上的Get Java Now进入java下载页面。 也可以通过Java Downloads | Oracle直接进入java下载页面。

  • 还可以通过 首页下方的Developers链接->Develop页面favorite language下的java链接->java页面Downloads链接下的Java SE链接 进入java下载页面。与上方操作进入的页面一样。

2)进入java下载页面后选择TAB页Java archive。

 3)滚动鼠标到页面下方找到Java SE的版本列表,选择适合自己的版本进入。该页面链接Java Archive | Oracle

4)在选定版本的下载页面选择适合自己操作系统的安装包下载,这里选择适合64位操作系统的tar包。

5)下载,需要登录oracle账号。

1.3 JDK1.8的安装

1) 创建安装目录

linux下安装软件一般都放在/usr目录下,在/usr目录下新建java目录。

2) 安装rz命令

使用rz命令上传jdk安装包到Linux的/usr/java目录,如果不识别rz命令,需要使用 sudo apt install lrzsz 命令安装。(也可以用xftp工具上传)

3) 上传JDK安装包

Linux默认终端Terminal不支持rz和sz命令,可以在远程终端Xshell/CRT中使用rz或者sz命令,或者直接在Xftp中传输文件。使用rz命令时会弹出选择对话框。

切换到root用户,使用rz命令选择上传文件。

4)解压JDK安装包

通过以下命令解压缩tar安装包。
tar -zxvf jdk-8u11-linux-x64.tar.gz

1.4 JDK1.8的配置

1)修改JDK环境变量

修改/etc/profile文件(命令:vi /etc/profile),在文件profile的最后一行加上以下配置,保存并退出(:wq!)。

  • 注意:export后面的语句中不要出现空格,尤其是末尾。有空格时刷新配置文件会报错(-bash: export: ` ': not a valid identifier)。
export JAVA_HOME=/usr/java/jdk1.8.0_291
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin
export PATH=$PATH:$JAVA_PATH

2)刷新配置文件

使用source命令刷新配置文件:

source /etc/profile

3)验证JDK是否安装成功

使用java -version命令查看jdk版本,如果有版本信息说明安装成功。

2、MySQL8的安装配置

ubuntu系统中可以通过在终端输入 sudo apt-get install mysql-server 直接安装服务端,也可以连客户端一起安装(sudo apt-get install mysql-server mysql-client)。本文主要介绍如何选择mysql版本下载并安装。

2.1 环境检查

1) 检查是否有mysql服务

在终端里面输入sudo netstat -tap | grep mysql 回车查看mysql安装端口情况,若没有显示结果表示没有安装mysql,若有显示结果表示已安装。已安装过mysql,若版本符合自己的要求一定要清理干净当前的mysql后再安装新版本。下图表示没有安装mysql。

2)检测是否已经安装了mysql 

通过以下命令检测命令检测是否已经安装了mysql :service mysql status 

通过 mysql -uroot -p,如果能够进入数据库,可以证明数据库是已经安装好的。

也可以根据 rpm -qa | grep mysql 查看安装的软件包名称,接着根据 rpm -ql 列出软件包安装的文件。

可以使用  rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置。

  • 还可以使用find查找所有包含mysql服务的文件路径,使用which命令通过 PATH环境变量查找可执行文件路径(用于查找指向这个命令所在的文件夹),使用whereis命令通过本地架构好的数据库索引查找。

3)查看mysql安装版本

如果已经安装了mysql,可以通过mysql --version 或 mysql -V 查看已安装mysql的版本号。

2.2 mysql 彻底卸载

如果已安装的mysql版本不符合要求,需要进行彻底的卸载。

1)在终端中查看MySQL的依赖项:dpkg --list|grep mysql

2)通过以下命令卸载

  • 卸载命令: sudo apt-get remove mysql-common
  • 卸载命令: sudo apt-get autoremove --purge mysql-server-8.0
  • 清除残留数据: dpkg -l |grep ^rc|awk 'print $2' |sudo xargs dpkg -P,使用该命令时会提示是否删除数据目录,选择yes。
  • 再次查看MySQL的剩余依赖项:dpkg --list|grep mysql
  • 继续删除剩余依赖项直至查看剩余依赖项为空,如:sudo apt-get autoremove --purge mysql-apt-config,sudo apt-get autoremove --purge mysql-community-client-core ,sudo apt-get autoremove --purge mysql-community-server-core ,sudo apt-get autoremove --purge mysql-community-server-debug 。

2.3 下载 MySQL8 安装包

1) 查看ubuntu版本

使用cat /proc/version 命令查看ubuntu版本,可以看到ubuntu1~20.04字样。

2)MYSQL官网下载mysql8的安装包

方式一:本地下载完整安装包

去MYSQL官网地址:https://dev.mysql.com/downloads/mysql/ 下载mysql8的安装包,选择对应的系统为Ubuntu Linux,版本为Ubuntu Linux 20.04(x86,64-bit)版本,下载tar包。

进入下载页面点击下载

方式二:本地下载apt 配置安装包

首先访问 https://dev.mysql.com/downloads/repo/apt/ 获取配置包下载地址,点击download进入下载页面;点击 No thanks, just start my download. 进行下载。

方式三:服务器上直接下载apt 配置安装包

首先访问 https://dev.mysql.com/downloads/repo/apt/ 获取配置包下载地址,点击download进入下载页面;在 No thanks, just start my download.右键复制下载地址,这里复制到的地址为https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb ,在服务器上通过wget命令下载 。

2.4 安装 MySQL8

下面以mysql apt 配置安装包进行mysql8的安装。

1) 创建安装目录

linux下安装软件一般都放在/usr目录下,在/usr目录下新建mysql目录。

2) 上传MYSQL8 apt 配置安装包

上传下载的mysql8 deb安装包到/usr/mysql目录下。可以在远程终端Xshell/CRT中使用rz命令,或者直接在Xftp中传输文件。

  • 如果下载的是tar包,上传到服务器上后通过以下命令解压缩会得到一系列的.deb包,解压命令:tar -xvf mysql-server_8.0.20-2ubuntu20.04_amd64.deb-bundle.tar

3)安装MySQL8 APT配置安装包

输入以下命令进行安装:sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb,如果是root用户则不用输入sudo。安装过程中提示选择安装版本,默认安装的就是8.0版本,所以通过上下键直接选择“OK”确认即可。

4)从MYSQL8存储库下载最新的软件包

从所有已配置的存储库(包括新添加的 MySQL 8存储库)中下载最新的软件包信息,命令:sudo apt update

5)安装MYSQL8

通过以下命令安装MYSQL8:sudo apt install mysql-server

安装过程中会提示设置root密码。按照提示输入2次(密码和确认密码)即可;

输入之后会出现选择加密方式的提示界面,因默认的mysql8.0的加密方式与ubuntu18.04以上版本 不兼容,所以选择5.x的加密方式;建议选择下边的那个:

MYSQL8安装好之后,会创建如下目录:

  • 数据库目录:/var/lib/mysql/。
  • 配置文件:/usr/share/mysql-8.0(命令及配置文件),/etc/mysql(如my.cnf)。
  • 相关命令:/usr/bin(mysqladmin、mysqldump等命令)和/usr/sbin。
  • 启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录)。

6)验证MYSQL8是否安装正确

输入命令:mysql -uroot -p,然后输入上一步中设置的root用户密码,即可进入。

7)查看MySQL服务运行状态

  • service mysql status

8)启动/停止MySQL服务

  • 启动mysql服务:service mysql start
  • 停止mysql服务:service mysql stop

2.5 MySQL8配置

通过以上的APT方式安装好之后,所有的服务、环境变量都会启动和配置好,无须手动配置。

1)查看 MySQL8 的端口

方式一:登录mysql后使用show命令查看

1)登录mysql

[root@localhost ~]# mysql -uroot -p
Enter password: 输入数据库密码;

2)使用show global variables like 'port'; 命令查看端口号,

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

方式二:在/etc/mysql/my.cnf(Linux) 或者my.ini(Windows)中查看port。

方式三:通过linux命令查看

通过 netstat -anp | grep mysql 或 netstat -anp | grep 3306 命令或 netstat -nultp查看端口占用情况。

2)修改 MySQL8 的端口

使用vi/vim命令编辑/etc/mysql/my.cnf文件,添加port=2032,重启mysql,查看端口已变更为2032。

  • 注意:需要把配置项放在[mysqld]下方,如果没有该项需添加。

3)MySQL8 常用配置

[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id=1

#服务端口号 默认3306
port=3306

#mysql安装根目录(default /usr)
#basedir=/usr/local/mysql

#mysql数据文件所在位置
datadir=/var/lib/mysql

#pid
pid-file=/var/run/mysqld/mysqld.pid

#设置socke文件所在目录
socket=/var/lib/mysql/mysql.sock

#设置临时目录
#tmpdir=/tmp

# 用户
user=mysql

# 允许访问的IP网段
bind-address=0.0.0.0

# 跳过密码登录
#skip-grant-tables

#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
#skip-external-locking

#只能用IP地址检查客户端的登录,不用主机名
#skip_name_resolve=1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
#transaction_isolation=READ-COMMITTED

#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server=utf8mb4

#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_general_ci

#设置client连接mysql时的字符集,防止乱码
#init_connect='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1

#最大连接数
max_connections=400

#最大错误连接数
max_connect_errors=1000

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp=true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet=128M

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout=1800
wait_timeout=1800

#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size=134217728
max_heap_table_size=134217728

#禁用mysql的缓存查询结果集功能
#后期根据业务情况测试决定是否开启
#大部分情况下关闭下面两项
#query_cache_size = 0
#query_cache_type = 0
 
#数据库错误日志文件
#log-error=/var/log/mysqld.log

#慢查询sql日志设置
#slow_query_log=1
#slow_query_log_file=/var/log/mysqld_slow.log

#检查未使用到索引的sql
log_queries_not_using_indexes=1

#针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数
log_throttle_queries_not_using_indexes=5

#作为从库时生效,从库复制中如何有慢sql也将被记录
log_slow_slave_statements=1

#慢查询执行的秒数,必须达到此值可被记录
long_query_time=8

#检索的行数必须达到此值才可被记为慢查询
min_examined_row_limit=100

#mysql binlog日志文件保存的过期时间,过期后自动删除
#expire_logs_days=5
binlog_expire_logs_seconds=604800

2.6 开启root远程访问

1)登录mysql命令: mysql -uroot –p,输入密码登入。切换到系统数据库mysql:use mysql;

2)查看一下该数据库中的所有的表:show tables; 查看最后一张表“user”,看一下这张表有哪些字段:desc user;

3)查看user表的host,user字段信息:select host,user from user;  在这张表里,我们看到root用户仅仅只能在本地访问MySQL服务,所以我们要把它修改为“%”,意思是无论在哪里root账户都能够访问数据库服务:

4)修改user表中root用户的host信息:update user set host='%' where user='root';

5)开放root账户所有权限:GRANT ALL ON *.* TO 'root'@'%';

6)使各种权限设置立即生效:flush privileges;

  • 注意,在真实的生产环境中,并不建议这么修改,因为安全风险太大。建议根据实际情况将root用户的host项修改为某个指定的ip地址,或仍然保持localhost最后一项设置。

另,给普通用户远程连接的权限:

  • 1、授权 myuser 用户对指定库的所有表,所有权限并设置远程访问: GRANT ALL ON 指定库.* TO 'myuser'@'%';
  • 2、更新 该 用户密码: ALTER USER 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
  • 3、刷新权限: FLUSH PRIVILEGES;

2.7 Ubuntu下打开3306防火墙

开启了root远程访问后,还需要打开防火墙3306端口,使其他机器可以访问。通过 sudo ufw status 命令查看防火墙状态,若为开启状态时,需把待开放的普通端口加入到防火墙规则中,开放普通端口命令:sudo ufw allow 端口

防火墙相关名命令:

  • 1)查看防火墙状态                    sudo ufw status
  • 2)开启防火墙                           sudo ufw enable
  • 3)关闭防火墙                           sudo ufw disable
  • 4)重启防火墙                           sudo ufw reload
  • 5)设置外来访问默认权限         sudo ufw default deny  (//拒接所有外来访问,本机能正常访问外部)

防火墙端口相关名命令:

  • 1)开放普通端口                            sudo ufw allow 端口
  • 2)关闭普通端口                            sudo ufw delete allow 端口
  • 3)开放规定协议的端口                 sudo ufw allow 端口/tcp  (//指定开放端口的tcp协议)
  • 4)关闭指定协议端口                    sudo ufw delete allow 端口/tcp
  • 5)开放限定ip地址所有端口          sudo ufw allow from 192.168.121.1(指定ip为192.168.121.1的计算机操作所有端口)
  • 6)开放限定ip地址指定端口           sudo ufw allow from 192.168.121.2 to any port 3306(// 开放指定ip为192.168.121.2的计算机访问本机的3306端口)

2.8 Centos7打开3306防火墙

Centos7 默认的防火墙是 firewall,替代了以前的 iptables,下面以Centos7为例。

1查看防火墙状态
systemctl status firewalld

2开启防火墙
systemctl start firewalld

3关闭防火墙
systemctl stop firewalld

4其他命令
重启防火墙,重启 firewall 服务        systemctl restart firewalld
查看 firewall 服务是否开机启动        systemctl is-enabled firewalld
开机时自动启动 firewall 服务        systemctl enable firewalld.service
开机时自动禁用 firewall 服务        systemctl disable firewalld.service

上面所说的 firewall 可以看成整个防火墙服务,而 firewall-cmd 可以看成是其中的一个功能,可用来管理端口。

1查看 firewall-cmd 状态
firewall-cmd --state

2 查看已打开的所有端口
firewall-cmd --zone=public --list-ports

3查看想开的端口是否已开
firewall-cmd --query-port=端口/tcp

4开启指定端口
firewall-cmd --zone=public --add-port=端口/tcp --permanent

5开启一个端口,–permanent 永久生效,没有此参数重启后失效
firewall-cmd --reload
必须重新加载才能生效

6关闭指定端口
firewall-cmd --zone=public --remove-port=端口/tcp --permanent

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

2.9 开机自动启动设置

加入到系统服务:chkconfig --add mysql

自动启动:chkconfig mysql on

查询列表:chkconfig

  • 说明:都没关闭(off)时是没有自动启动。

3、TOMCAT的安装配置

3.1 tomcat9 的下载

1)打开tomcat官网,选择左侧的Tomcat 9,地址:https://tomcat.apache.org/download-90.cgi 。

2)找到9.0.54版本下的tar.gz,点击下载。也可以在tar.gz上右键复制链接地址后在服务器上通过wget命令下载。(下载地址 https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz)

3)上传tar包到服务器的opt/tomcat目录,或直接通过wget命令下载到服务器。(wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz)

3.2 tomcat9 的安装

在/opt/tomcat目录下解压tomcat 9,或在其他目录下解压完成后,将解压后的目录移动到/opt/tomcat目录下。命令(tar.gz格式):tar -zxvf apache-tomcat-9.0.54.tar.gz,解压后tomcat就安装好了。

3.3 tomcat9 的配置

1)修改启动脚本

进入tomcat的bin目录下:编辑startup.sh文件,添加java和tomcat的环境变量。

在最后一行之前(exec "$PRGDIR"/"$EXECUTABLE" start "$@"
)加入如下信息后保存退出(注意根据自己实际情况修改JAVA_HOME和TOMCAT_HOME):

#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_291
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:%JAVA_HOME/lib:%JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
 
#tomcat
export TOMCAT_HOME=/opt/tomcat/apache-tomcat-9.0.54

2)修改关闭脚本shutdown.sh

进入tomcat的bin目录下:编辑shutdown.sh文件,添加java和tomcat的环境变量。

在最后一行之前(exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
)加入如下信息后(与启动脚本中添加的内容相同)保存退出(注意根据自己实际情况修改JAVA_HOME和TOMCAT_HOME):

#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_291
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:%JAVA_HOME/lib:%JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
 
#tomcat
export TOMCAT_HOME=/opt/tomcat/apache-tomcat-9.0.54

3.4 tomcat9 的启动

1)启动tomcat

进入tomcat的bin目录下,使用命令 ./startup.sh 启动Tomcat。也可以通过 nohup ./startup.sh & 命令在系统后台不挂断地启动(默认情况下,会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中)。

  • nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。最好使用nohup命令启动tomcat服务。

2)查看日志

进入tomcat的日志目录,通过tail命令查看日志信息。

3)查看端口或进程

  • 查看端口命令netstat -naptl

  • 查看进程命令ps -ef |grep 8080/tcp ps -ef |grep 8080  或 ps -ef |grep tomcat

4)通过浏览器访问

浏览器地址栏输入IP地址:端口号的方式查看Tomcat的默认页面。

3.5 tomcat9 的停止

方式一:通过shutdown命令停止服务

进入tomcat的bin目录下,使用命令./shutdown.sh 启动Tomcat。查看tomcat进程,可以看到服务已终止。

方式二:通过kill命令停止服务

通过 kill -9 进程号 命令结束服务进程。

3.5 ubuntu 防火墙开启tomcat端口

如果tomcat的端口不在防火墙启用规则中,需添加进去,执行添加8080端口到防火墙规则命令:sudo ufw allow 8080,然后通过sudo ufo status 可以查看到8080 端口已开放。

以上是关于Linux下JAVA WEB服务器的搭建一(JDKMYSQLTOMCAT)的主要内容,如果未能解决你的问题,请参考以下文章

百晓生带你玩转linux系统服务搭建系列----DNS服务的搭建一(正向解析)

Linux环境下java环境搭建一 JDK搭建

Tomcat服务器的搭建和Web应用的部署

linux(centos)下Java Web环境开发

Linux服务器部署web项目

Android Studio开发环境的搭建