【博客系统】 二

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值