详解将Github项目部署到服务器上的步骤

发布时间 - 2023-03-27 00:00:00    点击率:

github是目前全球最大的开源社区,很多程序员都会将自己的代码托管在github上,借助其方便的版本控制和协作功能。然而,github上的项目仅仅是代码,要把它部署到服务器上运行,需要一些额外的工作。本文将为大家介绍具体的操作步骤。

一、登录服务器

使用SSH远程连接,输入命令:

ssh root@your_server_ip

二、安装必要的软件

在服务器上安装Git和Node.js。以Ubuntu系统为例,执行以下命令:

sudo apt-get update
sudo apt-get install git
sudo apt-get install nodejs

三、在服务器上创建一个Git仓库

在服务器上创建一个空的目录,并在其中初始化一个Git仓库,执行以下命令:

mkdir myapp
cd myapp
git init --bare

四、设置Git Hooks

在Git仓库中添加一个post-receive钩子以便自动部署应用程序,执行以下命令:

cd hooks
touch post-receive
sudo chmod +x post-receive
nano post-receive

在打开的文本编辑器中输入以下内容:

#!/bin/bash
git --work-tree=/var/www/html/myapp --git-dir=/root/myapp.git checkout -f
cd /var/www/html/myapp
sudo npm install

该脚本会自动将代码检出到/var/www/html/myapp下,并且执行npm install命令以安装项目依赖。

五、在Github上配置Webhooks

登录Github,在项目的Settings页面中点击Webhooks选项,然后点击Add webhook按钮。在Payload URL中输入服务器的IP地址和post-receive钩子的路径,例如:http://your_server_ip:8000/hooks/post-receive。在Content type中选择application/json,然后点击Add webhook。

六、在本地的代码中添加服务器地址

在本地的代码中修改package.json文件,增加以下内容:

{
  "scripts": {
    "start": "node app.js",
    "deploy": "git push deploy master"
  },
  "config": {
    "deploy": {
      "production": {
        "user": "root",
        "host": "your_server_ip",
        "ref": "origin/master",
        "repo": "ssh://git@your_server_ip:/root/myapp.git",
        "path": "/var/www/html/myapp",
        "ssh_options": ["StrictHostKeyChecking=no", "PasswordAuthentication=no"],
        "post-deploy": "npm install && pm2 restart app"
      }
    }
  }
}

其中,deploy脚本会将代码推送到服务器上的myapp.git仓库中;config/deploy/production中定义了一些配置项,包括服务器的ip地址、项目的路径、钩子所在的路径等。

七、执行代码部署

在本地的代码目录中执行以下命令:

npm run deploy production

该命令将代码推送到服务器上,触发post-receive钩子,自动将代码部署到/var/www/html/myapp目录下。

八、启动应用程序

进入到/var/www/html/myapp目录中,执行以下命令来启动应用程序:

npm start

应用程序现在应该可以在服务器上运行了!如果应用程序启动失败,则需要检查依赖项是否已正确安装,以及应用程序的配置是否正确。

总结:

以上就是将Github上的项目部署到服务器上的步骤。虽然这个过程看起来有些繁琐,但是通过使用这种方法,可以实现高效的代码部署和协作。同时,也为我们提供了很好的学习机会,让我们更深入地了解Git、Node.js等技术。


# github  # git  # 器上  # 应用程序  # 会将  # 创建一个  # 自己的  # 很好  # 让我们  # 目录中  # 并在  # 要把 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何在阿里云虚拟主机上快速搭建个人网站?  详解vue.js组件化开发实践  详解Huffman编码算法之Java实现  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何正确选择百度移动适配建站域名?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  EditPlus中的正则表达式实战(6)  php结合redis实现高并发下的抢购、秒杀功能的实例  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  英语简历制作免费网站推荐,如何将简历翻译成英文?  手机网站制作与建设方案,手机网站如何建设?  长沙做网站要多少钱,长沙国安网络怎么样?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何为不同团队 ID 动态生成多个非值班状态按钮  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何在橙子建站中快速调整背景颜色?  如何确认建站备案号应放置的具体位置?  *服务器网站为何频现安全漏洞?  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何快速上传建站程序避免常见错误?  如何快速生成凡客建站的专业级图册?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  googleplay官方入口在哪里_Google Play官方商店快速入口指南  在线教育网站制作平台,山西立德教育官网?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  如何快速完成中国万网建站详细流程?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  HTML 中动态设置元素 name 属性的正确语法详解  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何快速搭建高效可靠的建站解决方案?  Swift中swift中的switch 语句  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何在 Pandas 中基于一列条件计算另一列的分组均值  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  再谈Python中的字符串与字符编码(推荐)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询