【博客系统】 二

本文主要介绍了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强制刷新浏览器缓存

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA写mybatis程序,java.io.IOException:Could not find resource mybatis-config.xml

找不到mybatis-config.xml 尝试maven idea:module&#xff0c;不是模块构造问题 尝试检验pom.xml&#xff0c;在编译模块添加了解析resources内容依旧不行 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.or…

魔众文库系统 v5.6.0 DWG文件格式支持,部分数据封面显示异常,定时调度清理临时文件

魔众文库系统基于文档系统知识&#xff0c;建立平台与领域&#xff0c;打造流量、用户、付费和变现的闭环&#xff0c;帮助您更好的搭建文库系统。 魔众文库系统发布v5.6.0版本&#xff0c;新功能和Bug修复累计17项&#xff0c;DWG文件格式支持&#xff0c;部分数据封面显示异…

P95陷阱

想象这个场景&#xff1a; 一位测试同事走到你的座位旁&#xff0c;说&#xff1a;“接到客户&#xff08;上游系统&#xff09;反馈&#xff0c;说我们系统有个Rest接口响应慢。我看了监控上的P95响应时间&#xff0c;都一秒多了&#xff0c;帮忙看看吧。” 又来活了。 你喜…

langchain 之 Tools 多案例使用(一)

原文&#xff1a;langchain 之 Tools 多案例使用&#xff08;一&#xff09; - 简书 ATTENTION: 如果采用 openai 的接口&#xff0c;需要走代理&#xff0c;本文采用 proxychains 进行设置。开启 debug 模式后&#xff0c;能看到更多的输出信息。 import langchain langcha…

ROC 曲线:健康背景下的应用和解释

一、介绍 在医疗保健领域&#xff0c;做出明智的决策对于改善患者治疗结果、有效分配资源和设计有效的诊断测试至关重要。受试者工作特征 (ROC) 曲线是一个强大的工具&#xff0c;在评估诊断测试的性能、区分健康个体和患病个体以及优化医疗保健干预方面发挥着至关重要的作用。…

第07章 面向对象编程(进阶)

一 关键字&#xff1a;this 1.1 this是什么&#xff1f; 在Java中&#xff0c;this关键字不算难理解&#xff0c;它的作用和其词义很接近。 它在方法&#xff08;准确的说是实例方法或非static的方法&#xff09;内部使用&#xff0c;表示调用该方法的对象。它在构造器内部使…

【android】install android NDK

目录 1 下载NDK 2 解压 3 android-ndk的配置 1 下载NDK 下载网址&#xff1a;NDK 下载 | Android NDK | Android Developers 如果没有所需要的版本&#xff0c;则点击页面下面 不受支持的 NDK 下载需要的版本。 2 解压 将压缩文件&#xff08;例如 android-ndk-r25c-…

(五)什么是Vite——冷启动时vite做了什么(依赖、预构建)

vite分享ppt&#xff0c;感兴趣的可以下载&#xff1a; ​​​​​​​Vite分享、原理介绍ppt 什么是vite系列目录&#xff1a; &#xff08;一&#xff09;什么是Vite——vite介绍与使用-CSDN博客 &#xff08;二&#xff09;什么是Vite——Vite 和 Webpack 区别&#xff0…

一看就会的jni,不会你来打我!

环境配置 Android Studio&#xff0c;这个不多说了。 简单说一下NDK的下载和环境变量&#xff0c;方便在Terminal里使用命令(mac版)。 下载 1.可以通过Android Studio内置的Settings-Android SDK-SDK Tools安装NDK&#xff0c;下载目录为 /Users/mac-xxx(Username)/Library…

VF01 bapi BAPI_BILLINGDOC_CREATEMULTIPLE修改付款方

系统标准通过函数SD_PARTNER_READ&#xff0c;读取VBPA表销售订单对应的伙伴。 调整通过源代码增强LV60AA01最后位置。

《QT从基础到进阶·二十九》QT,opencv源码调试

有时候我们在使用VS调试程序的bug&#xff0c;但发现程序崩溃的地方并不在我们写的程序中&#xff0c;我们通过调用堆栈发现程序崩溃的地方出现在QT或者opencv等源码中&#xff0c;那么我们怎么能把断点打到这些开源库中&#xff0c;下面提供一种办法&#xff1a; 解决方案–右…

单日充值破6000万、8天收入破亿,小程序短剧的商业真相

进入2023年以来&#xff0c;短剧发展的速度相当惊人。无论是从短视频平台的用户规模来说&#xff0c;还是从短剧内容的商业效益来看&#xff0c;都进入了双增长的狂飙模式。 小程序指的是在一些APP的小程序平台上&#xff08;多为微信端&#xff0c;抖音、快手等平台也有&…

使用requests库解决Session对象设置超时的问题

在requests库的IRC频道中&#xff0c;提出了一个问题&#xff0c;即Session对象在requests库中没有一个可以全局设置的timeout属性&#xff0c;而是需要为每个请求传递timeout值&#xff0c;或者创建一个自定义子类来实现。 为了解决这个问题&#xff0c;可以向Session对象添加…

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. 点击系统…

中国芯片金字塔成形,商业化拐点将至

其作始也简&#xff0c;其将毕也钜。 传说埃及用时30年建成左赛尔金字塔&#xff0c;成为亘古不灭的世界奇迹。在今天&#xff0c;中国芯片产业走过8年“国产替代”历程&#xff0c;国产芯片的“金字塔”体系业已初具雏形&#xff0c;展现出蓬勃的发展潜力。 2023年是补全自主…

Linux系统进程与进程间通信

Linux是一个多用户、多任务的操作系统&#xff0c;支持多个进程同时运行。进程是Linux系统中的基本单元&#xff0c;它们负责执行各种任务&#xff0c;如网页浏览、文件下载、程序运行等。在Linux中&#xff0c;进程是由一个或多个线程组成的&#xff0c;线程是进程的基本执行单…

浅谈安科瑞无线测温产品在巴西某工厂的应用

摘 要&#xff1a;高压开关设备是变电站和配电站中保证电力系统安全运行的重要设备之一,因此,开关柜的稳定运行对于整个电力系统有非常重要的意义。设备老化、长期高负荷运行都可能使设备局部温度过高而发生火灾&#xff0c;因此,对变电站内的敏感设备进行温度检测变得尤为重要…

Java实现简单的俄罗斯方块游戏

一、创建新项目 1.首先新建一个项目&#xff0c;并命名为俄罗斯方块。 2.其次新建一个类&#xff0c;命名为Main&#xff0c;或其他的。 二、运行代码 代码如下&#xff1a; package 俄罗斯方块;import java.awt.BorderLayout; import java.awt.Color; import java.awt.Gr…

2024有哪些免费的mac苹果电脑内存清理工具?

在我们日常使用苹果电脑的过程中&#xff0c;随着时间的推移&#xff0c;可能会发现设备的速度变慢了&#xff0c;甚至出现卡顿的现象。其中一个常见的原因就是程序占用内存过多&#xff0c;导致系统无法高效地运行。那么&#xff0c;苹果电脑内存怎么清理呢&#xff1f;本文将…

【机器学习8】采样

1 均匀分布随机数 均匀分布是指整个样本空间中的每一个样本点对应的概率&#xff08;密度&#xff09; 都是相等的。 根据样本空间是否连续&#xff0c; 又分为离散均匀分布和连续均匀分布。编程实现均匀分布随机数生成器一般可采用线性同余法&#xff08;Linear Congruential…