centos部署tomcat+mariadb笔记

本文详细介绍了在全新CentOS服务器上部署Tomcat和MySQL的基础步骤,包括安装JDK,配置Tomcat的server.xml,部署Tomcat服务,安装并配置MariaDB,以及处理可能遇到的问题,如SELinux设置和防火墙管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于云服务器而言,若要部署javaweb,则tomcat是javaweb工程的主要载体,通过该服务可以使自己和其他用户访问自己设计好的网页。另外,mysql作为一款应用最广泛的数据库软件,也是javaweb最不可或缺的组件之一。对于一个到手的全新centos服务器,如何进行基础的部署?

一、部署tomcat

1、安装jdk。jdk是tomcat的前置必备。先查看是否安装了jdk。

java -version

然后采用yum安装的方式安装jdk。这里使用openjdk1.8.0这个版本,测试各种情况下该版本没有出现不兼容情况。

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

安装完成后,在etc/profile这个文件最后加上java的环境变量。

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/ext
export PATH JAVA_HOME CLASSPATH

然后执行以下命令使环境变量生效。

source /etc/profile

2、安装tomcat。这里仍然采用yum安装。先查看是否安装了tomcat:

systemctl status tomcat

若提示服务未被发现,则未安装。接下来进行安装:

yum -y install tomcat

tomcat的默认安装路径是/usr/share/tomcat。可以看到该目录下的文件:

[root@centos /]# cd /usr/share/tomcat
[root@centos tomcat]# ls
bin  conf  lib  logs  temp  webapps  work

其中bin是tomcat的配置文件,与手动安装不同,yum安装的tomcat不需要在bin目录下通过startup.sh或shutdown.sh来进行服务的开关,只需要执行以下命令即可。

systemctl start tomcat

而conf文件下,最重要的是server.xml文件,用户对tomcat的基本配置修改通过更改该文件内容完成。例如更改tomcat默认使用的8080端口号,找到这个代码段,把第一个“8080”改成自己想要的端口即可,第二个8080可不更改。

    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

若要修改tomcat的默认工程目录,在以下代码中间插入一行:

<Host name="localhost"  appBase="webapps"
           unpackWARs="true" autoDeploy="true">
       <Context path="" docBase="test1" debug="0" reloadable="true"/> #这里插入一行代码
       <!-- SingleSignOn valve, share authentication between web applications
            Documentation at: /docs/config/valve.html -->
       <!--
       <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
       -->

       <!-- Access log processes all example.
            Documentation at: /docs/config/valve.html
            Note: The pattern used is equivalent to using pattern="common" -->
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
              prefix="localhost_access_log." suffix=".txt"
              pattern="%h %l %u %t &quot;%r&quot; %s %b" />

context path指定为" ",即默认在webapps的目录下,docbase="test1",即在webapps的test1为默认工程。每次更改完,要重新启动tomcat使配置文件生效:

systemctl restart tomcat

tomcat下的logs文件保存的tomcat的各种日志信息。其中,catalina.out是tomcat服务的运行日志;localhost_access_log.2000-01-01.txt这类的日志记录了你的tomcat工程的请求收发情况,特别是当调试mysql的时候,查看该日志可以更快定位错误位置。例如,日志中有以下代码:

10.0.2.2 - - [04/Sep/2020:05:37:30 +0000] "POST /UserServlet?action=checkUsername&username=root&nocache=1693805844356 HTTP/1.1" 500 1610

即可知,在04/Sep/2020:05:37:30这个时间点,tomcat发起了一次ajax的post类型http请求,请求目标函数在UserServlet这个包下,名称为checkUsername,但返回值为500(Ajax请求成功时为200),说明,checkUsername这个函数的运行遇到了错误,例如与mysql交互超时等等。

tomcat下的webapps这个文件是你的工程运行的主文件夹,默认里面什么都没有。若你要测试tomcat是否正确运行,可以写一个Helloworld的html代码放在目录下,然后按上面更改完context path和docbase,即可在浏览器输入localhost:8080查看是否正确显示界面文件。每次重启完tomcat,需要等待一段时间才能正确刷新网页。

若浏览器显示不出来,看一下是否设置的是8080端口,进行浏览器访问的主机是否可以ping通tomcat部署的服务器,tomcat工程的默认位置以及工程文件是否存在语法问题。若以上均检查过了没问题,可能是防火墙未放行。查看防火墙状态:

sudo systemctl status firewalld

若状态为running,则可以关闭防火墙(若是自己购买的云服务器,则不推荐,很容易被他人盗用作为挖矿机),或让防火墙放行8080端口:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

然后刷新防火墙:

firewall-cmd --reload

再查看8080端口是否放行:

firewall-cmd --list-port

最后,给tomcat添加开机自启动,即可完成tomcat的部署。

systemctl enable tomcat

二、部署maiadb

mariadb和mysql用法和功能完全相同,但是配置更加简单。仍然使用yum安装。

centos7中默认有mariadb的一个包,先将其删除避免版本冲突。

 rpm -qa | grep mariadb  

可以看到这么一个包:mariadb-libs-5.5.68-1.el7.x86_64。将其卸载。

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64   
     --nodeps

然后可以开始用yum安装mariadb及其server服务。

yum install mariadb-server mariadb -y

等待完成后,启动并添加开机自启:

systemctl start mariadb
systemctl enable mariadb

然后输入mysql -V查看是否安装成功,出现以下信息即可:

[root@centos /]# mysql -V
mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1

接下来设置mysql的默认密码:

mysqladmin -u root -p password yourpassword

这里的yourpassword改成你自己要设置的密码即可。执行该命令,mysq会让你输入原始密码,安装完成后默认没有密码,直接回车即可。

接下来登录到mysql:

mysql -uroot -pyourpassword

为了让tomcat能通过jdbc远程访问到mysql数据库,还需要进行如下配置:

use mysql;
delete  from user where password="";
update user set host="%";
flush privileges;

mysql的常用命令有:(注意每条命令必须以分号 ; 结束),且centos下的mysql区分大小写,注意不要写错。

mysql -uroot -pyourpassword      #登录mysql数据库
show databases;                  #查看已创建的数据库
create database test1;           #创建名为test1的数据库
use test1;                       #进到test1的目录中,接下来可对该数据库进行操作
show tables;                     #查看数据库下已创建的表
desc table1;                     #查看名为table1的表的属性

#创建一个名为userinfo的表,第一行表示创建一个UserID列,属性为int(11),
    not null表示不可为空,auto_increment表示自增,unique表示该列不可出现相同数据,
    最后的'id'为备注,随便填即可,接下来的每个列都进行相关定义,
    最后一行的primary key定义UserID这一列为主键。
CREATE TABLE  `userinfo`(
`UserID` INT(11) NOT NULL AUTO_INCREMENT UNIQUE COMMENT 'id',  
`Username` VARCHAR(20) NOT NULL  COMMENT 'username', 
`Email` VARCHAR(20) NOT NULL  COMMENT 'email', 
`Passwd` VARCHAR(20) NOT NULL  COMMENT 'password',                 
`Tel` VARCHAR(15) COMMENT 'teliphone',                  
`CreatDate` DATE NOT NULL COMMENT 'date', 
`Comments` VARCHAR(200) COMMENT 'comment', 
PRIMARY KEY (`UserID`) 
);         

select * from table1;       #查看table1表下的所有数据,把*换成列名称可查看某一列的数据

最后,若开启了防火墙,也需要放行mysql默认的3306端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

三、问题处理

注意部署时需要关闭selinux,该命令为临时关闭。

setenforce 0

服务器环境下建议不要永久关闭selinux,造成安全性问题。若要关闭,编辑/etc/selinux/config文件,把SELINUX这一项改为disabled。

如果tomcat工程始终连不上mysql,查看系统下tomcat的布尔值:

getsebool -a|grep tomcat

若返回:

tomcat_can_network_connect_db --> off
tomcat_read_rpm_db --> off
tomcat_use_execmem --> off

则需要更改这几个值。

setsebool tomcat_can_network_connect_db=1
setsebool tomcat_read_rpm_db=1
setsebool tomcat_use_execmem=1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值