【博客系统】 二

news2025/1/21 6:30:15

本文主要介绍了linux和如何在云服务器上部署一个简单的servlet程序. 

一.云服务器

真正搞一个网站,是希望这个网站被其他人访问到 , 所以需要一个云服务器(具有外网ip)来让别人也可以访问

云服务器

操作系统是Linux(一般都是通过命令行来操作)

当前市面上常见的系统:

1.windows

2.Linux

3.Mac OS (苹果电脑)

4.Android

5.IOS

1.1Linux

对于Linux , 一般普通用户不会使用. 不适合日常使用,但是非常适合开发. 但作为一个程序员,Linux都是务必要熟悉使用的技能.

Linux诞生于1991年 , 出自一个叫Linus的芬兰大佬,读研时,他无聊就写了个操作系统 ,由于开源免费迅速就火了起来.

为了能够进行更好的多人协同开发, 他又开发了一个工具软件git, 后来的github也是深受linus大佬的影响(github的logo就是一只章鱼猫,据说这个大佬曾经做梦梦见了这样一只章鱼猫 . )

1.2使用领域

linux是世界上第一大操作系统.

1.服务器领域 (也有少数服务器是windows server)

2.嵌入式设备 (路由器/空调/电冰箱/自动门 这些也需要计算机来控制,嵌入式设备功能更简单)

3.移动端(手机) Android本质也是Linux

但是Linux桌面不好用,差不多是windows十年前的水平,有很多bug.

1.3Linux发行版

Linux其实是一个操作系统内核(最核心的功能)

一个完整的操作系统=内核+配套的应用程序

有很多不同的组织和个人,基于Linux内核,搭配上不同的程序,就构成了不同的 发行版.

这些发行版大同小异. , 企业中最常用的发行版 是 red hat (收费的,商业公司维护的)

但是当前我们使用的有两个选择:

1.Centos

和redhat是一摸一样的,就是改了个logo

(遗憾的是,Centos社区快要黄了,Centos8是最后一个版本)

2.Ubuntu乌班图

在企业端的使用市场份额虽然不算很高,但是在社区还是挺火的.

掌握一个发行版的的命令其他的都会了.

1.4Linux环境

如果获取Linux环境呢?

1.虚拟机

用软件模拟硬件,进一步的模拟出来的电脑中,装出来一个linux系统.

不推荐

  • 使用虚拟机本身有很多bug
  • 虚拟机不能解决外网ip问题

2.WSL

windows subsystem Linux

微软再windows内部内嵌了一个Linux内核.

成熟程度还是挺高的 .

但是仍然不能解决外网ip的问题

3.云服务器

很多服务器厂商,养了很多服务器,可以按需租给别人使用. 完美解决网站IP问题,就相当于租了一个电脑,虽然这个电脑的配置非常低.

各位可以在阿里云/腾讯云/华为云租一个云服务器 .(以学生身份买云服务器非常便宜,平均一个月10块钱左右(双十一/618等经常有促销)

服务器镜像版本选择

Ubuntu 22/20

Centos 7.6/8

注意:可以重装系统的.

买了云服务器之后就可以进入远程登陆到云服务上.

也可以使用单独的终端软件(公司中常用的方式.)来进行登陆 , 比如xshell.

使用终端软件连接到服务器需要以下三个内容

1.服务器的ip地址

2.服务器的用户名(centos-root ; Ubuntu-ubuntu)

2.服务器的密码 (可以在云服务器后台设置)

二.使用xshell安装依赖

使用xshell连接到云服务器

1.新建会话 输入主机号(云服务器的外网ip)

2.输入用户名/密码

centos的用户名:root   密码就是在后台设置的

3.成功进入

~描述的当前所处的目录位置

它是一个特殊的目录,表示该用户的home目录

要想把博客系统部署上去,需要先把javaweb的环境搭建好  (博客系统过程中,依赖一些程序,就需要把一些依赖的程序安装上) , 需要安装一下三个依赖.

1.JDK

2.Tomcat

3.mysql

Linux安装软件方式很多,这里介绍最简单的一种

1.安装KDL

yum(centos) / apt(ubtuntu)

相当于包管理器(相当于软件商店)

1.1搜索

  • yum list | grep jdk  
  • apt search jdk (ubuntu)

安装64位的开发工具包

1.2安装

先确保出在管理员命令下(root)

centos已经是root

ubtuntu通过sudo su - 切换到管理员(exit命令退出)

  • yum install 软件包名
  • apt install 软件包名

输入javac 如此显示就代表安装成功

2.安装tomcat

centos通过包管理器安装只能装7的版本,太低了.

可以直接把windows上下载的tomcat压缩包传到linux上就行

2.1直接将压缩包拖进命令行

此时就可以显示压缩包

注意:

如果拖不了,需要另外安装一个软件

  • yum install Irzsz
  • apt install unzip

2.2 使用unzip解压缩

2.3启动tomcat

2.3.1切换到bin目录
2.3.2赋予.sh文件为可执行文件(变绿了)
chmod  +x *.sh

2.3.3 启动tomcat
sh startup.sh

2.3.4通过浏览器访问tomcat欢迎页面

云服务器上部署的服务器程序要想被外界访问,需要先开放端口

云服务器厂商为了提高服务器的安全性,就引入了防火墙(轻量应用服务器)和安全组(ECS服务器),来限制端口对外访问的情况 . (注意不要打开mysql的3306和redis的6379 ,很容易被黑客入侵.)

3.安装mysql8.0

安装方式仍然有很多 , 这里使用最简单的方式:基于包管理器来安装

centos安装mysql8.0比较复杂,这里引用这位大佬总结的方法 :Docs (下面的方法基于这篇文章)

3.1先卸载原有 MariaDB 和 MySQL

# MariaDB的卸载 
rpm -qa|grep mariadb //查看是否有

rpm -e --nodeps 文件名 //卸载(有则会出现一个 mariaBD-lib.........的文件)

rpm -qa|grep mariadb //确认是否卸载 # MySQL的卸载

rpm -qa|grep mysql //查看是否有(如果没有输出则不需要执行下面的)

systemctl stop mysqld //停止服务

rpm -e --nodeps mysql文件名 //卸载

3.2 下载 mysql 资源包(https://dev.mysql.com/downloads/mysql/)

3.3 上传到 /usr/local 目录下

3.4 解压 mysql 的压缩包(/usr/local 目录下)

tar -Jxvf 文件名

3.5 重命名 mysql 文件夹

mv 原文件名 mysql8

3.6 导入临时环境变量(后面会教怎么配置环境变量)

export PATH=$PATH:/usr/local/mysql8/bin

3.7 测试是否成功安装

mysql --version

3.8 配置用户组,用户(/usr/local 目录下)

groupadd mysql

useradd -r -g mysql mysql

mkdir -p /data/mysql8_data

chown -R mysql:mysql /data/mysql8_data

chmod -R 750 /data/mysql8_data

3.9 配置 my.cnf 文件(/usr/local/etc/ 目录下)

touch my.cnf 
vim my.cnf

写入以下数据

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql8
# 数据存放目录
datadir    = /data/mysql8_data/mysql
log-bin    = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹明,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

3.10 初始化(/usr/local/mysql8/bin 目录下)

mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

3.11后台启动

/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

3.12 测试登录

mysql -u root -p 回车 //默认无密码

3.13 修改密码(进入数据库)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

FLUSH PRIVILEGES;

3.14 配置系统环境变量(记得退出数据库)

Vim /etc/profile

追加一行

export PATH=$PATH:/usr/local/mysql8/bin

刷新

source /etc/profile


三.部署

真正开始部署

1.稍微修改代码

* 修改端口为3306

* 确保密码和服务器数据库密码一致

* ip不需要修改,因为程序和服务器仍然在同一个主机上.

2.导入数据库的数据

3.打包达成war

4.把war包上传到webapps目录下

如果tomcat正在运行,就能够自动进行解压缩和部署;

如果没有触发自动解压缩,也可以手动重启tomcat(kill 再startup)

四.问题总结

1.云服务器安装的mysql是8.0的版本,所以代码中引入得mysql驱动包也要是8.0的版本.

2.阿里云云服务器的插件文件

安装mysql的时候,安装之后无法启动,后来发现是服务器缺少插件, 使用yum命令安装了libaio之后就好了

yum install -y libaio

3.xshell拖动不了文件/拖入无法加载

  • yum install Irzsz (centos)
  • apt install unzip (ubuntu)

4.安装解压缩命令

  • yum install -y unzip zip

解压

  • unzip 压缩文件

5.ctrl+f5强制刷新浏览器缓存

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

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

相关文章

共享WiFi贴项目商业新模式,到底能不能做

共享WiFi贴的模式,已经在众多商业圈和线下商家门店中引起关注,创造出了一种新的共享互联网商业模式。然而这种共享模式到底能不能做,从中创业者可以获得多少的商业价值呢?让我们一文深度解析一下。 共享WiFi贴,简单来说…

052-第三代软件开发-系统监测

第三代软件开发-系统监测 文章目录 第三代软件开发-系统监测项目介绍系统监测 关键字: Qt、 Qml、 cpu、 内存、memory 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C 的强大功…

智能制造中后期:深挖成本、提升效率的关键——标准工时

在智能制造的背景下,企业面临着持续的成本压力和效率提升的需求。特别是在智能制造的中后期,要想进一步深挖成本、提升效率,必须考虑标准工时这一重要因素。标准工时作为一种基础而富有价值的管理工具,对于建立领先的标准工时系统…

PPP协议_基础知识

ppp协议 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。 一.ppp协议的组成 PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成: 对各种协议数据报的封装方法(封装成帧)链路控制协议LCP    …

【机器学习】 特征工程:特征预处理,归一化、标准化、处理缺失值

特征预处理采用的是特定的统计方法(数学方法)将数据转化为算法要求的数字 1. 数值型数据 归一化,将原始数据变换到[0,1]之间 标准化,数据转化到均值为0,方差为1的范围内 缺失值,缺失值处理成均值、中…

前后端联调时JS数据精度问题的解决

在JavaScript中,Number类型范围 -2^53 1 到 2^53 - 1,而在Java中Long类型的取值范围是 -2^63 1 到 2^63 - 1, 比JavaScript中大很多,所以后端能正常处理。 其实 ES6 引入了 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 这两个常量…

开源与闭源:驾驭大模型未来的关键决断

在数字化的时代洪流中,开源与闭源的选择不断成为技术界的重要分水岭。随着特斯拉CEO埃隆马斯克的言论及其决策,公开支持开源,并糅合商业理念与技术革新,使得这场辩论再次成为公众关注的焦点。那么,在这场关乎技术发展脉…

八股文-TCP的三次握手

TCP协议是一种面向连接、可靠传输的协议,而建立连接的过程就是著名的三次握手。这个过程保证了通信的双方能够同步信息,确保后续的数据传输是可靠和有序的。本文将深入解析TCP三次握手的步骤及其意义。 漫画TCP的三次握手 TCP连接的建立采用了三次握手的…

vite动态配置svg图标及其他方式集合

文章目录 前言使用vite-plugin-svg-icons动态配置安装插件引入图标下载新建组件svg-icon.vue使用 使用vue组件动态配置总结如有启发,可点赞收藏哟~ 前言 在配置化的情况下,图标配置也显得极为重要的 使用vite-plugin-svg-icons动态配置 参考vite-plugin…

C#中.NET 7.0 Windows窗体应用通过EF访问新建数据库

目录 一、 操作步骤 二、编写EF模型和数据库上下文 三、移植(Migrations)数据库 四、编写应用程序 五、生成效果 前文已经说过.NET Framework4.8 控制台应用通过EF访问已经建立的和新建的数据库。 前文已经说过.NET 6.0 控制台应用通过EF访问…

【Python大数据笔记_day09_hive函数和调优】

hive函数 函数分类标准[重点] 原生分类标准: 内置函数 和 用户定义函数(UDF,UDAF,UDTF) ​ 分类标准扩大化: 本来,UDF 、UDAF、UDTF这3个标准是针对用户自定义函数分类的; 但是,现在可以将这个分类标准扩大到hive中所有的函数,…

1. redis入门到放弃

使用shutdown命令的时候,会在关机的同时生成一个RDB文件,使数据不丢失。redis虽然有16个库,但是基本上只会用0库,用其他的库没有意义。集群只能在0号库做mysql的读写,大约为写入600笔/s,读2000笔/s 一、Redis全局命令…

本地mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

背景介绍: MySQL版本5.7,系统Win7,启动mysql服务时提示如下 解决方案 【会删除库中数据及mysql注册信息】: 1、删除原服务MySQL57 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --remove MySQL572、清空data 清空…

elementPlus实现暗黑与白亮主题切换

elementPlus上面默认是支持黑白主题切换的。只需要给html标签添加dark类名并且在mian.ts中导入css变量即可 我们就按照它推荐的useDark这个hook来 useDark使用起来非常简单,只需引入使用即可。vue直接就可以使用,无需做什么其他操作 中文网地址&#…

Apache阿帕奇安装配置

目录 一、下载程序 1. 点击Download 2. 点击Files for Microsoft Windows 3. 点击Apache Lounge 4. 点击httpd-2.4.54-win64-VSI6.zip ​编辑​ 5. 下载压缩包 6.解压到文件夹里 二、配置环境变量 1. 右键我的电脑 - 属性 2. 高级系统设置 3. 点击环境变量 4. 点击系统…

wpf devexpress 自定义统计

总计统计和分组统计包含预定义总计函数。这些函数允许你计算如下: 数据列的数量(Count) 最大和最小值(Max和Min) 总计和平均值(Sum和Average) 处理GridControl.CustomSummary 事件或者使用 GridControl.CustomSumm…

2024清理mac苹果电脑内存免费工具CleanMyMac X4.15

当你使用苹果电脑时,内存的优化和清理变得至关重要。随着时间的推移,我们的电脑内存可能会变得拥挤,导致性能下降。清理内存可以提高电脑的速度和反应能力,并确保它始终在良好状态下运行。本文将向您介绍怎么清理苹果电脑内存的方…

深度学习入门(第一天)——深度学习必备知识点

深度学习要解决的问题 人工智能、机器学习、深度学习的区别于联系 机器学习的流程: 数据提取 特征工程 建立模型 评估与应用 特征工程可以说是建模过程中,最重要的部分。 既然特征工程是最重要的,常规我们会做各种各样的特征,…

Google codelab WebGPU入门教程源码<5> - 使用Storage类型对象给着色器传数据(源码)

对应的教程文章: https://codelabs.developers.google.com/your-first-webgpu-app?hlzh-cn#5 对应的源码执行效果: 对应的教程源码: 此处源码和教程本身提供的部分代码可能存在一点差异。运行的时候,点击画面可以切换效果。 class Color4 {r: number;g: numb…

英伟达真是赢麻了,深夜推出最强AI芯片霸场 | 百能云芯

10月14日凌晨,英伟达在2023年全球超算大会(Supercomputing Conference,SC)上正式宣布,升级旗舰AI芯片,推出全新的H200芯片,以处理更强大的人工智能系统。包括亚马逊的AWS、Alphabet的Google Clo…