CentOS部署Web项目(小白入门)

您所在的位置:网站首页 apache服务器部署web项目 CentOS部署Web项目(小白入门)

CentOS部署Web项目(小白入门)

2023-07-13 15:38| 来源: 网络整理| 查看: 265

前言

早在很多年前, 我就已经掌握了Linux、Nginx、NodeJS等热门技术的单词拼写. (⊙_⊙)

但是从来没入门过, 最近因为要部署个人项目, 于是买了台服务器尝试着去简单部署. 可我啥也不会, 就一点一点百度, 弄坏了就重置服务器. 像我这样记性非常差的菜鸡, 过几天就又不记得这个过程了, 为防止在未来再次需要独立部署, 记录下这个过程.

约定

假设我们已经写好了前后端代码并进行打包, 现已生成两个dist文件夹, 只需要部署即可.

购买服务器

服务器可以选择阿里云、腾讯云、华为云等, 随你喜欢. 我选择用华为云做演示. 这些云厂商有大量的产品, 有专门用来存图片的(OSS), 有专门用来存数据库的(RDS), 有专门用来做负载均衡的(SLB), 我们选择『弹性云服务器ECS』

需要注意的是镜像需要选CentOS,版本随意. 公网IP一定要有, 这一点官方给出了详细的解释.

至于其他配置, 如果自己玩玩的买1H2G即可. 或者咨询官方客服, 告知需求会给你匹配相应的配置. 这里列出我购买的这台服务器仅供参考. (个人玩的话, 这个配置挺贵的了, 年费大概是2000不到一点)

登录服务器

登录服务器有很多种方式,云厂商后台都可以登录, 但是每次打开浏览器太麻烦了. 这里我习惯使用PuTTY这款工具. 在下面这个链接可以下载.

下载完毕后我们填充参数然后点击Open

初次登录会弹一些警告窗, 不用在意, 点击yes即可

然后输入账号密码进行登录.

当你看到'Welcome to xxx'(不同服务器厂商欢迎标语不同)时就代表登录成功了.

安装MySQL

在官网下载适合你的版本 https://dev.mysql.com/downloads/repo/yum/ 点击Download

直接复制下载链接

先使用wget下载安装包

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

复制安装包名称进行安装

rpm -ivh mysql80-community-release-el7-3.noarch.rpm

更新数据源

yum makecache

查看MySQL可安装包

yum list | grep mysql-com

安装server版

yum install mysql-community-server.x86_64

若安装失败如下图所示, 可以参课这篇博文

进入mysql目录并初始化, 数据库初始化之后会生成一个随机密码, 我们用命令查看

cd /var/lib/mysql systemctl start mysqld grep 'password' /var/log/mysqld.log

登录数据库, 密码是刚刚生成的临时密码

mysql -u root -p

这样的密码太难记, 我们可以设置一个自己喜欢的密码(实际上, 如果你不修改密码数据库不允许你进行任何操作)

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

大概率你是修改失败的. 因为数据库密码有自己的安全策略, 太简单的密码是不允许的, 那么我们就设置一个非常复杂的密码, 然后再去修改安全策略, 再次修改简单密码即可.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'aabbCCDD1234!'; set global validate_password.policy=LOW; set global validate_password.length=6; ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

创建数据库

create database myblog;

输入quit可退出数据库, 之后启动数据库服务

quit service mysqld start安装Node

建议使用NVM(Node Version Manager)来管理Node版本, NVM是个node版本管理工具, 简单来说, 他允许你下载不同版本的node, 随时进行切换.

下载NVM

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

更新配置文件并安装你想要的node版本

source ~/.bashrc nvm install v10.16.1

查看node版本

node -v上传文件到服务器

如何将自己电脑上的两个dist放到服务器上呢?

这里我推荐一款客户端软件WinSCP, 在下面这个链接可以下载.

下载完毕后我们填充参数然后点击Login

初次登录会弹一些警告窗, 不用在意, 点击Add即可

登录之后可以看到本地文件和服务器文件的列表

在右侧新建文件夹(我自己的项目名叫oreo), 然后将2个dist文件夹复制进去, 在命令行界面可以看到我们的确已经把文件上传到了服务器.

部署后端

在前文我们已经把后端代码放在服务器上了, 理论上我只需要node dist/main.js即可部署该应用. 现在我们尝试部署.

'无法连接数据库', node应用很有可能会遇到这个问题, 这个问题是因为认证协议的不同, 具体原因可以参考

我们只需运行如下命令即可解决. 这里的密码是全新的密码, 可以覆盖之前的. 但是同样这个地方有安全策略, 我们之前改的策略在这里不生效, 所以可以临时用一个复杂的密码先解决这个认证协议的问题.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'aabbCCDD1234!';

你会发现覆盖之后又因为安全策略的问题无法修改密码了...没事, 我们故技重施即可.

然后再次尝试部署我们的Node项目, 满屏绿! 程序员真的太爱这个颜色了.

但是问题又来了, 直接node运行虽然可以部署, 但是命令行是无法再执行别的任务了. 而且一旦关闭界面, 也就关闭了该进程. 因此, 我们需要借助一款叫forever的工具, 他可以持久运行node程序.

全局安装forever

npm install forever -g

运行node程序, 查看当前forever运行的所有进程

forever start dist/main.js forever list

安装Nginx

下载一些必要的依赖包

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

下载Nginx

wget http://nginx.org/download/nginx-1.16.1.tar.gz

移动安装包并解压

mv nginx-1.16.1.tar.gz /usr/local/ tar -zxvf nginx-1.16.1.tar.gz

这时候通过ls命令可以看到产生了一个nginx-1.16.1的文件夹, 进入这个文件夹进行配置

cd /usr/local ./configure --prefix=/usr/local/nginx

执行安装

make

进入sbin后, 启动Nginx

cd /usr/local/nginx/sbin ./nginx

之后在浏览器里直接输入你的公网IP.

如果你是华为云, 理论上应该是不能出现这个界面的... 因为华为云的防火墙默认并没有开启80端口. 进入华为云控制台,进入『安全组』

入方向和出方向都需要添加80端口, 点击『快速添加规则』, 选中80和443即可(443用于HTTPS的, +不+都行).

之后需要重启华为云服务器. 再次启动Nginx应该就可以成功了.

配置Nginx

编辑Nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

重启Nginx(要在/usr/local/nginx/sbin下执行)

./nginx -s reload结语

到此, 部署的全过程就结束了. 本文内容都是经过新服务器实践的. 不太了解运维相关知识, 如有误笔还请在评论区指出~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3