JM无限创想—OneBlog部署过程全记录

JM无限创想—OneBlog部署过程全记录

    • 选购云服务器
    • 连接云服务器
    • 安装JDK8(OpenJDK1.8)
    • 创建一个独立用户
    • 安装Maven 3.6.1
    • 安装mysql8
    • 安装redis
    • 安装nginx
    • 获取OneBlog开源代码
    • 代码配置调整
    • 数据整理
    • 服务部署以及服务器时间修改
    • 应用服务部署
    • 域名购买
    • 配置域名解析
    • nginx配置反向代理
    • 配置SSL
    • 开放端口(80,443,3306,6379)
    • 手气不错
    • 致歉

选购云服务器

这里插入推荐【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年50元,价格非常实惠,我最初在写这篇文章的时候是以99元购入的1核2g,没想到现在2核4g也只要74元了。我也是没做多想赶紧增购了一台2核4g的。后面便以此2核4g的机器为例做下本文的相关更新。

在我们购入腾讯云轻量服务器后我们登录到云控制台,我们点左上方云产品,然后选择轻量级应用服务器,这时便可以看到自己刚刚购入的2核服务器啦。
JM无限创想—OneBlog部署过程全记录_第1张图片
JM无限创想—OneBlog部署过程全记录_第2张图片
这时候直接点击登录便可以登录服务器了,或者在更多里面查看更多细节操作。在上面截图的右下角还有公网地址,只是我没有截进来。

连接云服务器

前面已经选购了合适的vps服务器,下面我们通过远程连接的方式访问它。由于我前面已经配置了shell工具的公钥,因此我打开shell工具,直接配置有关ip地址,直接就能访问连接。连接之后我立马查看了实际的内存配置:
JM无限创想—OneBlog部署过程全记录_第3张图片
惨还是有点惨的,先硬着头皮一个个搞起来试试吧。

安装JDK8(OpenJDK1.8)

我们图个省事,看下yum源有没有捷径可以走

yum list java*


可以看到相当优秀的,我们直接通过如下命令安装1.8的openjdk:

# 注意devel
yum install -y java-1.8.0-openjdk-devel.x86_64

安装好后我们通过java -version和javac来进行验证,输出如下则安装成功:

创建一个独立用户

使用root账户存在安全风险,同时有些程序可能明确限制root用户的安装和使用,因此我建议最好可以创建一个用户进行一个相对统一的管理和使用。
我这里创建一个funnyjm用户,并为之分配sudo权限,具体过程如下:

# 添加用户
adduser funnyjm
# 设置密码 需要输入两次
passwd funnyjm
# 修改/etc/sudoers文件为可读写
chmod -v u+w /etc/sudoers
# 给funnyjm设置sudo权限(如下图所示添加内容)
vim /etc/sudoers
# 切换到新用户
su funnyjm
# 查看授权目录,如果没有则先创建
mkdir ~/.ssh
# 创建授权文件
cd ~/.ssh
vim authorized_keys
# 填入内容后 wq保持退出 然后设置文件权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

在如下图所示位置插入funnyjm相关配置即可
JM无限创想—OneBlog部署过程全记录_第4张图片

安装Maven 3.6.1

我创建/data/apps目录,并将它的所属权转交给funnyjm用户:

chown -R funnyjm:funnyjm /data

并在/data/apps目录下分别创建如下目录:
JM无限创想—OneBlog部署过程全记录_第5张图片
而后切换到funnyjm用户,

# 切换用户
su funnyjm
# 进入我管理安装软件的目录
cd /data/apps/apps

然后网上找找下载maven相关包

#下载安装包
wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#解压安装包
tar zxvf apache-maven-3.6.3-bin.tar.gz
#创建一个软链接
ln -s apache-maven-3.6.3/ maven

配置环境变量

#配置环境变量
sudo vim /etc/profile
# 添加以下两行
export MAVEN_HOME=/data/apps/apps/maven/
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
#验证maven可用性
mvn -v

安装mysql8

centos8如下:

#切换回root用户
#安装Yum Repository
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
#使用rpm安装
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
#使用yum安装mysql服务
yum install -y mysql-server
#启动服务
systemctl start mysqld
#设置自启动
systemctl enable mysqld.service
#登录mysql
mysql;
#mysql修改root密码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root@123';
#刷新下
FLUSH PRIVILEGES;
#退出myslq
exit
#尝试重新登录
mysql -uroot -p
#输入新设定密码完成登录

centos7.6如下:

#切换回root用户
#安装
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
#使用yum安装mysql服务
yum install mysql-community-server
#启动服务
systemctl start mysqld.service
#设置自启动
systemctl enable mysqld.service
#查看默认密码
grep 'temporary password' /var/log/mysqld.log
#登录mysql
mysql -u root -p;
#mysql修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '复杂点的密码';
#刷新下
FLUSH PRIVILEGES;
#退出myslq
exit
#尝试重新登录
mysql -uroot -p
#输入新设定密码完成登录

安装redis

参看我的另一篇博文《CentOS7 linux下yum安装redis》

安装nginx

#安装依赖包
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
#下载ng
wget -c https://nginx.org/download/nginx-1.18.0.tar.gz
#解压
tar -zxvf nginx-1.18.0.tar.gz
#创建软链接
ln -s nginx-1.18.0 nginx
#进入目录后configure
cd nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_sub_module --with-http_gzip_static_module --with-pcre
#编译与安装
make && make install
#进入到安装nginx目录下面的sbin
cd /usr/local/nginx/sbin
#启动命令
./nginx
# 其他命令:
#温和)此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s quit
#(强硬)此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -s stop
#重启nginx(不推荐此方法,推荐先停止在启动)
./nginx -s reload
# 验证ng启动结果
curl localhost:80

获取OneBlog开源代码

访问OneBlog gitee源码地址
我的习惯是先用idea把代码clone下来,按照作者提供的资料先在本地把服务运行起来,简单试用后,我确认好要搞这么个事情了,便把代码fork到自己的仓库,并更改idea关联的远程代码到自己仓库对应的代码。然后在本地做各种各样的配置等调整,准备完毕之后,再正式投入生产流程。

代码配置调整

-- 连接mysql创建数据库
CREATE DATABASE dblog;

创建数据库用户并分配相应操作权限参考我的另一篇博文:《Mysql创建用户并分配权限简单记录》

在项目中找到如下两个文件,并导入数据库
1, 导入数据库docs/db/dblog.sql
2, 初始化数据库docs/db/init_data.sql

数据整理

博客部署这块建议参看 OneBlog官方文档
基本上以上sql执行完后,再对配置文件做些改动,将数据库等信息改成自己的基本就可以运行了。项目包含四个模块,主要关注blog-web和blog-admin,是为客户端和管理端系统。他们各自的配置文件中包含了blog-core下的配置信息,所以主要需要修改的也是blog-core下的具体配置。作者默认已经写了dev和test两套环境的,原则上我们要加一套prod的相关配置,这里需要快速验证系统可用,只需要在dev配置下更改mysql以及redis相关配置即可。maven将blog-web和blog-admin分别打成jar包通过java来运行启动。

服务部署以及服务器时间修改

为了降低服务器压力,不考虑在服务器安装git,这里我通过scp将本地代码同步到服务器。之后在服务器上通过maven进行打包(作者在根目录下有个build.sh 直接运行该脚本),然后通过我个人定制的服务启动脚本运行服务。

在这里我也是注意到我们购买的异国VPS时间并不是北京时间,那么我们可以执行tzselect命令按提示更换时区,依次选择4-Asia,9-China,1-Beijing Time。然后输入1确认。但事情到此并没有结束,我们看到屏幕打印的提示信息:
JM无限创想—OneBlog部署过程全记录_第6张图片
根据它的提示,我们打开profile文件,在末尾添加内容

#打开profile文件
vim /etc/profile
#添加如下两行后保存退出
TZ='Asia/Shanghai'
export TZ
#执行如下命令即可生效
source /etc/profile
#输入date命令验证
date

应用服务部署

首先我们通过git获取代码,这要求你本地安装了git

域名购买

我这里是通过阿里云购买的域名,具体从略

顺手打一波小广告吧,以下点击直达:
【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元
【阿里云】为了无法计算的价值
【VULTR】海外VPS虚拟主机提供商-注册领取$100

配置域名解析

在阿里云域名控制台配置域名解析,具体从略

nginx配置反向代理

写的有点累,暂略

配置SSL

暂略

开放端口(80,443,3306,6379)

# 切换回root用户执行
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=80/udp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=443/udp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=3306/udp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=6379/udp --permanent
firewall-cmd --reload

手气不错

致歉

本文因为各种原因没写完,博主承诺后续会补全,小伙伴们若有疑问欢迎随时私信与我探讨,共同进步。

你可能感兴趣的:(万里孤云,腾讯云,服务器,云计算)