当前位置: 首页 > news >正文

部署:上传项目代码 配置数据库

一、上传代码

1、使用git

可以使用Git Clone。使用前,在服务器上也要创建秘钥对。这里的密钥对,是专门用来读取Git仓库的。
宝塔上,点击终端。进来后,运行

ssh-keygen

还是一路回车,密钥对就建好了。
在这里插入图片描述

接着用命令查看下,刚才生成的公钥。看到后,老规矩,直接复制一下。

cat ~/.ssh/id_rsa.pub

在这里插入图片描述

然后打开GItHub里自己的仓库,点击:设置,左侧找到部署密钥,再点击新增部署密钥

在这里插入图片描述

  • Title大家可以随便填写一个,只要自己知道是干什么的就行。

  • 然后把刚才复制的密钥,粘贴到这里。

  • 部署密钥只能用来克隆Clone和拉取Pull,但是不能用来推送Push代码。所以不要给写入权限。

  • 最后提交一下
    在这里插入图片描述
    GitHub的话,会要求用手机上的GitHub App输入验证码。用国内其他仓库的,则没有这一步。

在这里插入图片描述
现在部署密钥就添加好了,如果用其他 Git 仓库也是类似的添加操作。接着,回到仓库的代码这里。点击Code,确认当前选择的是SSH,复制一下地址。
在这里插入图片描述
再回到宝塔里,点击文件,确保现在所在的位置是:/www/wwwroot。这个路径是专门用来存放项目的位置,然后点击终端
在这里插入图片描述
注意,如果出现宝塔终端提示无法自动认证,这是自己生成的密钥与宝塔终端的密钥互相冲突导致的,按以下步骤操作:

  • 点击文件,进入/root/.ssh目录,删掉所有密钥。
  • 重新点击宝塔终端,就可以进去了。
  • 再次回到/root/.ssh目录,会发现宝塔终端自己生成了新的密钥。
  • 为了避免冲突,直接将此密钥传到Git即可,就不要自己生成密钥了。

里面输入

git clone 你的仓库地址

在这里插入图片描述
这样仓库就克隆下来了。关闭窗口后,刷新一下,就能看到自己的项目了。
在这里插入图片描述

2、使用宝塔直接上传

另外一种方式,大家可以直接使用宝塔的上传功能。将自己的本地项目打个zip压缩包。上传到服务器后,再解压,这样也是可以的。这种操作非常简单,我们这里就不演示了。
在这里插入图片描述

3、安装依赖包

接着在宝塔里,点击自己的项目。进入项目目录里后,再次打开终端。运行

npm i

在这里插入图片描述

4、 修改代码

我们还需要对服务器上的代码做个配置

4.1. 设置环境变量

在项目目录中,找到.env.example,右侧找到更多,选择复制
在这里插入图片描述
直接按Ctrl + V,进行粘贴。改为名.env后,点击确认

在这里插入图片描述
双击打开.env后,将环境改为生产环境。

NODE_ENV=production
4.2. 设置密钥

还需要设置密钥,大家打开自己电脑上的终端。运行:

node

进入交互模式后,依次运行

const crypto = require('crypto');
console.log(crypto.randomBytes(32).toString('hex'));

在这里插入图片描述

复制得到的秘钥,填写到.env文件中的SECRET配置中。
在这里插入图片描述
这个秘钥就专供生产环境使用,它不归 Git 仓库管理,更不要告诉其他人了。

4.3. 配置数据库连接

关闭编辑器后,接着点击宝塔左侧的数据库,点击root密码。这里默认已经有一个数据库密码了,大家可以自定义其他的,或者随机生成另一个新的。
在这里插入图片描述
我就不改了,直接复制一下。再点击文件,找到数据库配置的config/config.json
在这里插入图片描述

双击后,将刚复制的密码填写到production里。还有千万不要忘记了,密码要用双引号包裹起来。
在这里插入图片描述
接着保存,关闭编辑器。

5. 创建数据库

我们还要需要在服务器上创建数据库。回到项目根目录,位置千万不要搞错,点击终端,运行创建数据库的命令 参考node ORM (sequelize)使用、查询、验证及express 基础框架的搭建及实例的使用

npx sequelize-cli db:create --charset utf8mb4 --collate utf8mb4_general_ci --env production

第一次运行,会询问是否确认,直接回车。命令后面的--env production,表示要创建的是,生产环境的数据库,也就是clwy_api_production
在这里插入图片描述

6. 创建数据表

接着创建数据表,直接运行迁移。同样需要指定是生产环境。

npx sequelize-cli db:migrate --env production

在这里插入图片描述

7. 生成初始数据

还可以用种子文件,生成初始数据。

npx sequelize-cli db:seed:all --env production

在这里插入图片描述

8.使用 MySQL 客户端,远程管理数据库

全都运行完毕后,关闭终端。我们可以用客户端,连接到服务器上的MySQL,查看一下数据库有没有什么问题。当然,想要导入导出SQL文件,使用客户端也非常方便。

  • 新建一个连接在这里插入图片描述
  • 选择 SSH
    在这里插入图片描述
  • 选择私钥
    在这里插入图片描述
  • 打开后,已经能访问服务器上的数据库了。
  • 在这里插入图片描述
9. 总结一下
  • 上传代码,推荐使用Git Clone。或者用宝塔面板直接上传,但是不推荐。
  • Linux上的npm包,有可能和Windows上不同。上传到服务器后,需要重新安装。
  • 生产环境,有自己的环境变量、秘钥和数据库配置。
  • 可以使用命令,创建生产环境的数据库、表和数据。
  • 使用MySQL客户端,也可以远程管理服务器上的数据库。
http://www.lryc.cn/news/518277.html

相关文章:

  • C++—9、如何在Microsoft Visual Studio中调试C++
  • 11. C 语言 作用域与变量使用技巧
  • 【机器学习案列】学生抑郁可视化及预测分析
  • Perl语言的循环实现
  • SpringBoot项目——使用Spark对爬虫爬取下的数据进行清洗
  • 分布式锁 Redis vs etcd
  • 《深度剖析:开源与闭源模型,AI舞台上的不同角色》
  • Angular结合C#
  • Spring——自动装配
  • Servlet与JSP:Java的秘密花园入口
  • 【Linux】Linux常见指令(上)
  • ELFK日志采集实战
  • Kubernetes 使用自定义资源(CRD)扩展API
  • 用户使用LLM模型都在干什么?
  • MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)
  • 六年之约day10
  • springboot和vue配置https请求
  • selenium遇见伪元素该如何处理?
  • 慧集通(DataLinkX)iPaaS集成平台-数据质量
  • 微软发布AIOpsLab:一个开源的全面AI框架,用于AIOps代理
  • ElasticSearch | Elasticsearch与Kibana页面查询语句实践
  • 12.C语言中的struct详解:定义、赋值、指针、嵌套与位字段
  • 文件读写到SQLite数据库的方法
  • springboot项目部署至linux
  • 使用sed命令封装自定义dos2unix脚本
  • 调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序
  • 带内管理和带外管理
  • 【操作系统】阻塞非阻塞I/O、同步异步I/O
  • spring cloud alibaba-dubbo3 rpc运行原理
  • 【Uniapp-Vue3】computed计算属性用法及方法对比