部署个人博客系统

news2024/12/23 15:41:56

目录

1.安装jdk

2.安装tomcat

3.数据库

4.部署博客系统

1.建库建表

2.微调代码

3.打包

4.拷贝

5.访问博客系统


为了能将我们写的项目部署到云服务器上

首先需要将部署时所依赖的环境搭建好

需要安装jdk,tomcat,mysql

1.安装jdk

直接使用包管理器进行安装,基于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,如果是这样,就成功了

 2.安装tomcat

步骤:

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了

3.数据库

数据库的安装过程比较简单,网上也有很多教程

服务状态

[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)

环境搭建好之后,就可以进行部署了

4.部署博客系统

1.建库建表

云服务器访问的是云服务器上的数据库,而不是本地的,本地的云服务器是访问不了的

将我们之前写的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

输入密码即可

2.微调代码

本地的数据库,端口号,用户名密码和云服务器可能是不同的

例如,本地数据库密码是设置的,云服务器数据库默认没有密码,可以给设置一个密码,本地代码密码改成相同的!!

查看一下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

3.打包

使用maven打成war包

双击package进行打包

4.拷贝

把war包拷贝到云服务器上的webapps目录

然后启动服务器

执行启动之前,文件必须是绿色,不然是没用的

 检查是否启动成功,如果是TIME_WATING就没启动成功,LISTEN才是成功 .那么失败了可以看日志信息,是否是需要的端口被其他进程所占用了.如果占用了,可以在配置文件中将端口号修改

至此,就部署成功了!

5.访问博客系统

如果在浏览器输入地址不能访问,并提示响应过久,检查防火墙

此时大概率是因为服务器的防火墙/安全组没有正确打开!

云服务器厂商为了保证机器的安全,引入的安全机制,默认情况下只有你的机器这个22端口(ssh)可以对外访问.要想让其他端口也能被外面访问,就需要手动添加

轻量应用服务器对应的是防火墙

ESC服务器对应的是安全组

这里我使用的是阿里云服务器,需要设置安全组

点击配置规则

 手动添加安全组,将8080端口开放

 设置成功后,就可以正常访问了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入拆解 Java 虚拟机-打卡|开篇词 | 为什么我们要学习Java虚拟机?

文章目录 计划缘起跟郑老师学习学习JVM的好处 计划 缘起 JVM对我来说是高深莫测的东西,从事软件开发有些年头了,很难深入的去学习它,一来是工作中没有亟需用到这些,都是写一些业务代码,二来是觉得困难没有坚持下去&a…

每天一道大厂SQL题【Day22】华泰证券真题实战(四)

每天一道大厂SQL题【Day22】华泰证券真题实战(四) 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…

【Java-Java集合】Java集合详解与区别

【Java-Java集合】Java集合详解与区别 1)概述2)集合框架图2.1.总框架图2.2.Iterable 框架图2.3.Map 框架图 3)List3.1.ArrayList 类继承图3.2.LinkedList 类继承图 4)Set4.1.HashSet 类继承图4.2.LinkedHashSet 类继承图4.3.TreeS…

C/C++开发中使用pkg-config来引用依赖库

在使用C/C进行开发的过程中,经常需要引用其它的库,可能是系统已经安装好的,也可能是其它的外部库。 如果是系统支持的库,可能在不同的系统下,其路径也不相同,在项目开发的时候跨平台将会是一个问题。比如&…

从零开始云服务器网卡抓包

从零开始云服务器网卡抓包 一. 服务器上新增自己的用户二. 添加组件libpcap四. 安装测试环境六. 编写demo代码七. 正式项目代码编译八. 结果展示 一. 服务器上新增自己的用户 我这边是ubuntu服务器,其默认username为ubuntu,使用创建服务器时候的密码通过…

10.基于共享储能电站的工业用户日前优化经济调度(论文复现)

matlab代码:基于共享储能电站的工业用户日前优化经济调度 相关程序代码资源:风、光、负荷场景生成;风电出力各场景及概率;光伏出力各场景及概率;负荷各场景及概率;场景的削减;样本概率初始化&a…

【云原生进阶之容器】第六章容器网络6.5.1--Calico网络方案综述

《云原生进阶之容器》专题索引: 第一章Docker核心技术1.1节——Docker综述第一章Docker核心技术1.2节——Linux容器LXC第一章Docker核心技术1.3节——命名空间Namespace第一章Docker核心技术1.4节——chroot技术第一章Docker核心技术1.5.1节——cgroup综述

Spring Web容器响应异常排查_Poller线程异常退出

问题一_系统响应异常 问题现象 04-11 18点左右客户反馈系统很慢;18点多,反馈pda登录异常; 19:20左右,本地网页登录,某些请求超时;某些正常; 短时间定位后无头绪,保留了stack和dum…

球友的一个帖子,半夜三点给我整睡不着了……

文章目录 一、起因二、建议1、括号和缩进2、仔细审题3、独立思考4、早起的好办法5、chatgpt会代替人类吗? 三、解决1、数据结构2、初始化3、判定 一、起因 事情的起因源自于星球里面一位球友的帖子,本来三点醒来上完厕所打算继续睡,突然手机响…

无人机应急救援有保障吗?如何实现救援?

无人机应急救援有保障吗?如何实现救援?中国自然灾害种类较多,分布地域广,发生频率较高。当遭遇洪水、火灾、洪水、地震、暴雪等灾害事故时,常规的信息通信基础设施受到损伤,导致信号中断。如果灾害事故地点相对偏僻,…

淄博旅游“一夜爆火”,五一流量大盘已经开启

全民调休换来的五一小长假即将来临,经过几年“禁锢”后,这两年的旅游业开始回暖。 而今年国内旅游黑马竟指向了新人淄博。 山东淄博烧烤一直以来都“小有名气”,但是这只在周边城市,或者部分人群里传播,而在今年&…

来使用分支语句和循环语句实现一个小游戏吧(猜数字游戏)

猜数字游戏 1.代码展示2.菜单设计3.主函数部分3.随机数设计 1.代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <time.h>void menu() {printf("************************\n");printf("*** 1.p…

移动端导航设计

根据产品层级的深度和广度&#xff0c;选择适合的导航模式&#xff0c;是产品设计中的关键一环。 任何APP的组织信息都需要以某种导航框架固定起来&#xff0c;一个新的产品合适的导航框架&#xff0c;决定了产品之后的延伸和扩展。 移动端的屏幕尺寸就这么大&#xff0c;操作方…

java定位系统源码,通过独特的射频处理,配合先进的位置算法,可以有效计算出复杂环境下的人员与物品的活动信息

智慧工厂人员定位系统源码&#xff0c;区域电子围栏管控源码 文末获取联系&#xff01; 在工厂日常生产活动中&#xff0c;企业很难精准地掌握访客和承包商等各类人员的实际位置&#xff0c;且无法实时监控巡检人员的巡检路线&#xff0c;当厂区发生灾情或其他异常状况时&#…

Layer组件多个iframe弹出层打开与关闭及参数传递

Layer官网地址&#xff1a;http://layer.layui.com/ 1、多个iframe弹出层&#xff08;非嵌套&#xff09; 1.打开iframe弹出层js代码 &#xff08;1&#xff09;示例一&#xff1a; content参数可传入要打开的页面&#xff0c;type参数传2&#xff0c;即可打开iframe类型的弹层…

STM32入门指南:了解STM32

1. 初识 STM32 STM32&#xff0c;从字面上来理解&#xff0c;ST 是意法半导体&#xff0c;M 是 Microelectronics 的缩写&#xff0c;32 表示 32 位&#xff0c;合起来理解&#xff0c;STM32 就是指 ST 公司开发的 32 位微控制器。在如今的 32 位控制器当中&#xff0c;STM32 …

GitHub新建仓库 上传文档

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 振&#xff0c;而飞破虚空 点击New repository 自定义仓库名称&#xff0c;并勾选 “Add a README file” 选项 复制Code链接 打开终端Git git cl…

夏驰和徐策带你从零开始学数据结构——哈希表

哈希表的概念&#xff1a; 哈希表是一种常用的数据结构&#xff0c;它可以在 O(1) 的时间复杂度内执行插入、查找和删除操作。哈希表的核心思想是使用哈希函数将键值对映射到数组中的一个位置上&#xff0c;从而实现快速的访问和修改。 哈希表由两个主要部分组成&#xff1a;…

Android开发—入门Kotlin编程语言

一、Kotlin简介 为什么Kotlin能代替Java此为Android官方第一支持的开发语言&#xff1f; 1&#xff09;Kotlin的语法更加简洁&#xff0c;对于同样的功能&#xff0c;使用Ktolin开发的代码量可能会比使用Java开发减少50%甚至更多&#xff1b; 2&#xff09;Kotlin语法更加高…

【Linux】文件IO---应用开发角度

目录简述 目录 前言&#xff1a; 一、Linux的文件 二、Linux文件系统目录结构 三、文件访问的方式 &#xff08;1&#xff09;通用方式&#xff1a;open/read/write/lseek/close 示例&#xff1a; &#xff08;2&#xff09;非通用函数&#xff1a;ioctl/mmap 示例&am…