目录
1.安装jdk
2.安装tomcat
3.数据库
4.部署博客系统
1.建库建表
2.微调代码
3.打包
4.拷贝
5.访问博客系统
为了能将我们写的项目部署到云服务器上
首先需要将部署时所依赖的环境搭建好
需要安装jdk,tomcat,mysql
直接使用包管理器进行安装,基于yum安装
yum就相当于一个应用商店
yum list | grep 关键词 来找到要安装的包名 | 叫做管道,将第一个命令的输出作为第二个命令的输入
yum list 包名 来进行安装
grep是用来是筛选的,因为yum list 列出的太多了.需要通过关键字进行筛选
这个过程是需要联网的,云服务器提供的yum源的速度很快
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.362.b09-2.al8
就是我们需要的
devel是 开发,64位系统的1.8.0版本的jdk
接下来复制软件包的名字,粘贴到目录
输入命令,输入y
完成
然后输入javac,如果是这样,就成功了
步骤:
1.下载压缩包,得到zip
2.将zip上传到linux中,可能需要yum install lrzsz
3.解压缩, unzip 包名 可能需要yum install unzip
4.进入bin目录中,赋予.sh文件权限.chmod + x*.sh
5.使用sh startup.sh启动tomcat
同样的方法寻找
我们可以发现这写tomcat都是老版本的,我们写的servlet代码是要和8版本的tomcat匹配的.因此只能手动安装了
我们可以直接从官网下载然后将zip传到linux服务器上
直接拽到要存放的目录下
如果你拖完是这个样子,那你需要先取消,然后在命令行中输入yum lrzsz
拖拽是用到了rz命令,有的自带,有的没有,没有的需要先手动装一下
再拖拽
传上去了
然后用命令解压缩
命令: unzip
还需要装一个解压命令
解压成功
进入目录看看,和win中的一模一样
这些是bin中的内容,一些启动脚本
现在还没有执行权限
进入bin 目录,通过chmod +x *.sh
给所有的.sh文件赋予可执行权限
我们发现这些文件都变绿色了.已经可执行了
sh startup.sh就能启动tomcat了
数据库的安装过程比较简单,网上也有很多教程
[root@iZ0jl8d8r83kkgjbl45z4nZ java1]# mysql -uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.16-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> select version();
+-----------------+
| version() |
+-----------------+
| 10.5.16-MariaDB |
+-----------------+
1 row in set (0.000 sec)
连接成功并查看 mariadb 版本号
MariaDB [(none)]> create database demo_db charset utf8mb4;
Query OK, 1 row affected (0.000 sec)
创建数据库时为了支持中文,统一使用 utf8mb4 字符集
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| demo_db |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)
环境搭建好之后,就可以进行部署了
云服务器访问的是云服务器上的数据库,而不是本地的,本地的云服务器是访问不了的
将我们之前写的db.sql文件的代码直接复制粘贴,建库建表
注意设置字符集
MariaDB [java_blog_system]> show tables;
+----------------------------+
| Tables_in_java_blog_system |
+----------------------------+
| blog |
| user |
+----------------------------+
2 rows in set (0.000 sec)
MariaDB [java_blog_system]> select *from blog;
+--------+--------------+--------------------------------------+---------------------+--------+
| blogId | title | content | postTime | userId |
+--------+--------------+--------------------------------------+---------------------+--------+
| 1 | 二分查找 | 二分查找又叫折半查找...... | 2023-04-09 20:42:05 | 1 |
| 2 | 二分查找 | 二分查找又叫折半查找...... | 2023-04-09 20:42:05 | 2 |
| 3 | 二分查找 | 二分查找又叫折半查找...... | 2023-04-09 20:42:05 | 3 |
+--------+--------------+--------------------------------------+---------------------+--------+
3 rows in set (0.000 sec)
MariaDB [java_blog_system]> select * from user;
+--------+----------+----------+
| userId | username | password |
+--------+----------+----------+
| 1 | zhangsan | 123 |
| 2 | lisi | 123 |
| 3 | wangwu | 123 |
+--------+----------+----------+
3 rows in set (0.000 sec)
退出
MariaDB [java_blog_system]> ^DBye
进入
[root@iZ0jl8d8r83kkgjbl45z4nZ java1]# mysql -uroot
有密码: mysql -root -p
输入密码即可
本地的数据库,端口号,用户名密码和云服务器可能是不同的
例如,本地数据库密码是设置的,云服务器数据库默认没有密码,可以给设置一个密码,本地代码密码改成相同的!!
查看一下mysql的端口号,注意要和代码的端口号相同
netstat -anp | grep mysql
使用netstat -anp | grep XXX查看某个进程占用了啥端口.某个端口被哪个进程占用了
grep后面加的就hi要查的进程或端口
[root@iZ0jl8d8r83kkgjbl45z4nZ ~]# netstat -anp | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 18956/mysqld
unix 2 [ ACC ] STREAM LISTENING 60117 18956/mysqld /var/lib/mysql/mysql.sock
[root@iZ0jl8d8r83kkgjbl45z4nZ ~]#
打包之前还要微调pom.xml
使用maven打成war包
双击package进行打包
把war包拷贝到云服务器上的webapps目录
然后启动服务器
执行启动之前,文件必须是绿色,不然是没用的
检查是否启动成功,如果是TIME_WATING就没启动成功,LISTEN才是成功 .那么失败了可以看日志信息,是否是需要的端口被其他进程所占用了.如果占用了,可以在配置文件中将端口号修改
至此,就部署成功了!
如果在浏览器输入地址不能访问,并提示响应过久,检查防火墙
此时大概率是因为服务器的防火墙/安全组没有正确打开!
云服务器厂商为了保证机器的安全,引入的安全机制,默认情况下只有你的机器这个22端口(ssh)可以对外访问.要想让其他端口也能被外面访问,就需要手动添加
轻量应用服务器对应的是防火墙
ESC服务器对应的是安全组
这里我使用的是阿里云服务器,需要设置安全组
点击配置规则