加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux云服务器下Tomcat部署超详细

发布时间:2020-12-14 02:03:32 所属栏目:Linux 来源:网络整理
导读:?基于阿里云Centos 7服务器的Tomcat?项目部署 ? 工具:一台安装jdk1.8的Centos 6/7.X?云服务器(64位) Putty ?ssh远程连接云服务器的软件 FileZillaClient ??本地机与服务器文件互传的软件 ? 步骤一:Centos 7安装jdk1.8 1.putty?连接上云服务器 2进入到目

?基于阿里云Centos 7服务器的Tomcat?项目部署

?

工具:一台安装jdk1.8的Centos 6/7.X?云服务器(64位)

Putty ?ssh远程连接云服务器的软件

FileZillaClient ??本地机与服务器文件互传的软件

?

步骤一:Centos 7安装jdk1.8

1.putty?连接上云服务器

2进入到目录?/usr/local/?中:

cd /usr/local/

3.创建目录?tools:

mkdir -p tools

4.进入到目录?/usr/local/tools?中:

cd tools/

5.?下载jdk-8u91-linux-x64.tar.gz

可以在官网上下载Linux -64?的jdk1.8,由FileZillaClient上传到服务器上???

6.?tools目录下解压缩

tar -zxvf jdk-8u91-linux-x64.tar.gz

7.?返回到上一级并创建?/usr/local/jdk?目录:

? cd ..

? mkdir -p jdk

8.?进入到?tools?目录后将?jdk1.8.0_91?移动到?jdk?目录中:

? cd ../tools/

mv jdk1.8.0_91/ ../jdk/

9?配置环境变量(很重要)

打开?/etc/?目录下的?profile?文件:

? vi /etc/profile

??将如下代码追加到?profile?文件末尾:

? # idea - jdk8 settings start 2016-08-01

?

JAVA_HOME=/usr/local/jdk/jdk1.8.0_91(自己安装jdk的所在目录)

?JRE_HOME=$JAVA_HOME/jre

?PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

?CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar

?export JAVA_HOME JRE_HOME PATH CLASSPATH

?

# idea - jdk8 settings end - 2016-08-01

?按?Esc?键、输入?wq!?回车,保持并退出。

?

10?即可启用新的配置:

?source /etc/profile

11

输入?java -version?查看?JDK?的版本:

? [[email?protected] jdk1.8.0_91]# java -version

?java version "1.8.0_91"

?Java(TM) SE Runtime Environment (build 1.8.0_91-b14)

?Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14,mixed mode)

证明安装成功

注意:安装jdk尽量用root用户

步骤二安装Tomcat服务器:

1.putty连接云服务器

2?进入到目录?/usr/local/?中:

? cd /usr/local/

?

3?创建目录?/usr/local/tools,如果有则忽略:

? mkdir -p tools

?

4?创建?/usr/local/tomcat?目录,如果已存在则忽略:

? mkdir -p tomcat

?

5?进入到目录?/usr/local/tools?中:

? cd tools/

?

6?下载?apache-tomcat-9.0.0.M4.tar.gz?文件:

?Wget?http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M4/bin/apache-tomcat-9.0.0.M4.tar.gz

如果自动下载不能完成可以手动下载。去Tomcat官网下载相应版本的tar.gz包

?

7?解压缩?apache-tomcat-9.0.0.M4.tar.gz:

? tar -zxvf apache-tomcat-9.0.0.M4.tar.gz

?

8?将通过解压得到的?apache-tomcat-9.0.0.M4?文件复制到?/usr/local/tomcat?目录中:

?mv apache-tomcat-9.0.0.M4 ../tomcat/

?

9?打开文件?/etc?目录下的?profile?文件:(配置Tomcat环境变量)

? vim /etc/profile

将如下代码追加到?profile?文件末尾:

?# idea - tomcat9 config start - 2016-05-01

?

?CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4

?CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4

?PATH=$PATH:$CATALINA_BASE/bin

?export PATH CATALINA_BASE

?

?# idea - tomcat9 config end - 2016-05-01

?保持并推出:wq!

?

10?修改?tomcat?的端口号和字符编码:

?进入到?/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf?目录中:

?cd ../tomcat/apache-tomcat-9.0.0.M4/conf

?打开?tomcat?服务的配置文件?server.xml:

??vi server.xml

?找到如下代码:

??<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

?将其中的?8080?改成?HTTP?协议的默认端口?80,改后的代码如下:

??<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

11.?进入到?/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin?目录中:

? cd ../bin/

?

12.?打开?vi catalina.sh?文件:

?在?# OS specific support.?前面加入如下代码:

??JAVA_HOME=/usr/local/jdk/jdk1.8.0_91

??JRE_HOME=$JAVA_HOME/jre

?键入?Esc?并输入“:wq!”保持并退出;

?

13.启动?tomcat?服务:

?./startup.sh

?打印如下信息则表明启动?Tomcat?服务成功:

??Using CATALINA_BASE: ??/usr/local/tomcat/apache-tomcat-9.0.0.M4

??Using CATALINA_HOME: ??/usr/local/tomcat/apache-tomcat-9.0.0.M4

??Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.0.M4/temp

??Using JRE_HOME: ???????/usr/local/jdk/jdk1.8.0_91/jre

??Using CLASSPATH: ??????/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar

? ?Tomcat started.

??打开浏览器输入?IP?地址看看吧!如果出现了我们的可爱的“小黄猫”则表明我们的?Tomcat?已提供服务啦!

?

14.?关闭?tomcat?服务:

?./shutdown.sh

?打印如下信息则表明关闭?Tomcat?服务成功:

??Using CATALINA_BASE: ??/usr/local/tomcat/apache-tomcat-9.0.0.M4

??Using CATALINA_HOME: ??/usr/local/tomcat/apache-tomcat-9.0.0.M4

??Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.0.M4/temp

??Using JRE_HOME: ???????/usr/local/jdk/jdk1.8.0_91/jre

??Using CLASSPATH: ??????/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar

?注意:不可连续执行多次?./shutdown.sh?命令,多次后报如下错误:

??SEVERE: Catalina.stop:

??java.net.ConnectException: Connection refused

???at java.net.PlainSocketImpl.socketConnect(Native Method)

???at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

???at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

???at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

???at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

???at java.net.Socket.connect(Socket.java:589)

???at java.net.Socket.connect(Socket.java:538)

???at java.net.Socket.<init>(Socket.java:434)

???at java.net.Socket.<init>(Socket.java:211)

???at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)

???at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

???at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

???at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

???at java.lang.reflect.Method.invoke(Method.java:498)

???at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)

???at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)

?

15?将?tomcat9?加入到系统服务列表中:

?进入到?/etc/init.d?目录中:

??cd /etc/init.d

?创建?tomcat9?服务配置文件:

??vi tomcat9

?将如下代码加入写入到?tomcat9?配置文件中:

??# idea - tomcat config start - 2016-05-01

?

??#!/bin/bash

???# description: Tomcat Start Stop Restart

???# processname: tomcat

???# chkconfig: 2345 20 80

???JAVA_HOME=/usr/local/jdk/jdk1.8.0_91/

???export JAVA_HOME

???PATH=$JAVA_HOME/bin:$PATH

???export PATH

???CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

?

???case $1 in

???start)

?????sh $CATALINA_HOME/bin/startup.sh

???;;

???stop)

?????sh $CATALINA_HOME/bin/shutdown.sh

???;;

???restart)

?????sh $CATALINA_HOME/bin/shutdown.sh

?????sh $CATALINA_HOME/bin/startup.sh

???;;

???esac

???exit 0

?

???#chmod 755 tomcat

???#chkconfig --add tomcat

???#chkconfig --level 2345 tomcat on

???#chkconfig --list tomcat

?

??# idea - tomcat config end - 2016-05-01

?键入?Esc?并输入“:wq!”保持并退出;

?其中的注意点是将?JAVA_HOME?和?CATALINA_HOME?变量设置成与我们当前配置相一致的路径;

?

16.为?tomcat9?分配可执行权限:

? chmod +x tomcat9

?

17.?将?tomcat9?纳入到系统的服务列表中,即添加?tomcat9?为系统服务:

?chkconfig --add tomcat9

?

18.?查看当前系统服务都有哪些:

?chkconfig --list

?也可以查看指定的系统服务,如这里我们指定?tomcat9?这个服务:

??chkconfig --list tomcat9

?打印如下信息:

??tomcat9 ????????0:off ??1:off ??2:on ???3:on ???4:on ???5:on ???6:off

?则表明已将?tomcat9?设置为系统服务,2、3、4、5?都为?on?表示可随系统自动启动;

?

19?我们可以在任意目录下执行关闭、启动、重启?Tomcat9?服务啦:

?19.1?关闭?tomcat9?服务:

??service tomcat9 stop

?19.2?启动?tomcat9?服务:

??service tomcat9 start

?19.3?重启?tomcat9?服务:

??service tomcat9 restart

?

后记:(很重要)

关于Tomcat成功启动后,外网不能成功访问的解决:

第一个方面:Linux上启动防火墙的问题

当下比较流行的linux镜像是CentOS,所以防火墙也随之变成了firewall,那么怎么操作这个防火墙呢?

?

#停止firewall

systemctl stop firewalld.service

?

#开启firewall

systemctl start firewalld.service

?

#禁止firewall开机启动

systemctl disable firewalld.service

?

#查看默认防火墙状态(关闭后显示not running,开启后显示running)

firewall-cmd –state

?

但是开启的时候,可能报这个错

Failed to start firewalld.service: Unit firewalld.service is masked.

尝试

systemctl unmask firewalld.service

?

发现,防火墙已经关闭了,经过大量搜索发现,还可能是安全组的问题,经过测试,通了。

那么怎么来配置安全组呢?

1.登陆阿里云

2.进入安全组

?

“控制台”?->?“云服务器?ECS”?->?选择云服务器?->?“更多”?->?“安全组配置”

3.配置规则

?

“配置规则”?->?“添加安全组规则”

4.配置8080端口

添加安全组规则

?

步骤三安装MySQL5.7:

?

1?通过?putty?连接到阿里云?CentOS7?服务器;

?

2?进入到目录?/usr/local/?中:

cd /usr/local/

?

3?创建目录?/usr/local/tools,如果有则忽略:

mkdir -p tools

?

4?创建?/usr/local/mysql?目录,如果已存在则忽略:

mkdir -p mysql

?

5?进入到目录?/usr/local/tools?中:

cd tools/

?

6?查看系统中是否已安装?MySQL?服务:

rpm -qa | grep mysql

yum list installed | grep mysql

?

7?如果已安装则删除?MySQL?及其依赖的包:

yum -y remove mysql-libs.x86_64

?

8?下载?mysql57-community-release-el7-8.noarch.rpm?的?YUM?源:

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

?

9?安装?mysql57-community-release-el7-8.noarch.rpm:

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

安装完后,得到如下两个包:

mysql-community.repo

mysql-community-source.repo

?

10?安装?MySQL:

yum install mysql-server

遇到疑问的地方,一路?Y?下去即可;

安装完毕后,在??/var/log/mysqld.log?文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录?MySQL?服务端:

grep "password" /var/log/mysqld.log(有可能这个初始随机密码会没有)

打印如下内容:

A temporary password is generated for [email?protected]: hilX0U!9i3_6

我们复制?[email?protected]:?后面的随机字符串,这个字符串就是?MySQL?在安装完成后为我们随机生成的密码;

?

12?登录到?MySQL?服务端并更新用户?root?的密码:

mysql -u root -philX0U!9i3_6

打印出?MySQL?的版本即表明已登录;

设置用户?root?可以在任意?IP?下被访问:

grant all privileges on *.* to [email?protected]"%" identified by "新密码";

设置用户?root?可以在本地被访问:

grant all privileges on *.* to [email?protected]"localhost" identified by "新密码";

刷新权限使之生效:

flush privileges;

更新?MySQL?的用户?root的密码:

set password = password(‘新密码‘);

注意:由于?MySQL5.7?采用了密码强度验证插件?validate_password,故此我们需要设置一个有一定强度的密码;

输入?exit?后用新密码再次登录看看吧!

?

13?查看?MySQL?当前都内置了哪些数据库:

mysql> show databases;

我们发现其内置了如下一些数据库:

information_schema

mysql ?????????????

performance_schema

sys

?

14?启动?MySQL?服务:

service mysqld start

?

15?关闭?MySQL?服务:

service mysqld stop

?

16?重启?MySQL?服务:

service mysqld restart

?

17?查看?MySQL?的状态:

service mysqld status

?

18?查看?MySQL?的字符集:

mysql> show variables like ‘%character%‘;

+--------------------------+----------------------------+

| Variable_name ???????????| Value ?????????????????????|

+--------------------------+----------------------------+

| character_set_client ???| utf8 ?????????????????????|

| character_set_connection | utf8 ?????????????????????|

| character_set_database ?| latin1 ???????????????????|

| character_set_filesystem | binary ???????????????????|

| character_set_results ???| utf8 ?????????????????????|

| character_set_server ???| latin1 ???????????????????|

| character_set_system ???| utf8 ?????????????????????|

| character_sets_dir ?????| /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.01 sec)

查看指定的数据库中指定数据表的字符集,如查看?mysql?数据库中?servers?表的字符集:

??show table status from mysql like ‘%servers%‘;

查看指定数据库中指定表的全部列的字符集,如查看?mysql?数据库中?servers?表的全部的列的字符集:

show full columns from servers;

?

19?设置?MySQL?的字符集为?UTF-8:

打开?/etc?目录下的?my.cnf?文件(此文件是?MySQL?的主配置文件):

/etc/my.cnf

在?[mysqld]?前添加如下代码:

[client]

default-character-set=utf8

在?[mysqld]?后添加如下代码:

character_set_server=utf8

再次查看字符集:

mysql> show variables like ‘%character%‘;

+--------------------------+----------------------------+

| Variable_name ???????????| Value ?????????????????????|

+--------------------------+----------------------------+

| character_set_client ???| utf8 ?????????????????????|

| character_set_connection | utf8 ?????????????????????|

| character_set_database ?| utf8 ?????????????????????|

| character_set_filesystem | binary ???????????????????|

| character_set_results ???| utf8 ?????????????????????|

| character_set_server ???| utf8 ?????????????????????|

| character_set_system ???| utf8 ?????????????????????|

| character_sets_dir ?????| /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.01 sec)

?

20 /var/lib/mysql?是存放数据库文件的目录;

?

21 /var/log?目录下的?mysqld.log?文件记录?MySQL?的日志;

?

22 MySQL?采用的?TCP/IP?协议传输数据,默认端口号为?3306,我们可以通过如下命令查看:

netstat -anp

?

23?忘记密码时,可用如下方法重置:

# service mysqld stop

# mysqld_safe --user=root --skip-grant-tables --skip-networking &

# mysql -u root

mysql> use mysql;

mysql> update user set password=password("new_password") where user="root";

mysql> flush privileges;

?

转载来源:https://www.cnblogs.com/yangxiansen/p/7860001.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读