PHP 项目的部署方式相对其他 Web 编程语言来说,是比较简单的。如果未使用一些守护类进程,只需要把最新的代码更新到线上即可。这里总结了几种常见的 PHP 项目部署方式。

ftp

FTP 是最简单,也是最原始的项目部署方式。十多年前的虚拟主机还远没有现在云主机这么丰富和强大的自定义功能。运行环境是服务商提前安排好的,提供一个几百 M 或几 G 的目录空间。要把项目代码放到线上的这个空间,只有 FTP 这个选择。所以这也是那时 PHP 项目流行的部署方式。

Git

Git 通常是用来作为源码管理工具,但其提供的事件钩子(Hook)机制,让 Git 功能拥有了无限扩展的可能。通过 Git 的 Hook 功能,可以在源码 push 后,触发指定的脚本,实现项目的自动化和及时部署。

Deployer

Deployer 是一个 PHP 的专业部署工具。这个工具有点类似于 Ruby 的 Capistrano。基于 SSH 协议,通过调用远程服务器上的 Shell 命令来实现项目的自定义部署。其特点是部署时会用目录的方式来区分和保留部署源码的历史版本,这样可以实现线上部署版本的快速回退。同时支持自定义任务,这样给项目部署提供了更大的灵活性。

Envoy

Envoy 同样也是一个 PHP 的部署工具,是 Laravel 框架提供的一个官方组建包。跟 Deployer 一样基于 SSH 协议。它没有提供部署源码的历史版本功能。只是基于 Blade 模板功能提供了一套远程 Shell 的操作语法,实现对远程主机的命令操作,来实现部署的目的。这有点像 Python 语言的 Fabric。

在以上的部署方式中,FTP 目前应该属于要淘汰的方式了。多人协作的项目中,用 FTP 部署完全就是一场争夺战。Git 比较适合业务不稳定,需要频繁发布代码的部署场景。Deployer 和 Envoy 原理上比较类似,但 Envoy 更加轻量,而 Deployer 更加专业。以上所有的部署方式仅适合中小项目和公司,当两者达到一定规模,就需要更加复杂庞大的自定义部署平台了。

如何部署一个 PHP 项目相关推荐

  1. docker 中部署一个springBoot项目

    docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml [java] view plaincopy <?xml version= ...

  2. vue请求在退出页面还执行吗_如何用 Cloudbase Framework 部署一个 Vue 项目

    无需修改业务代码,就能将 Vue 应用前后端一键托管部署在云开发平台~ Cloudbase Framework 是云开发官方出品的前后端一体化部署工具.目前已经 开源 . 关于 Cloudbase F ...

  3. 部署一个Javaweb项目到腾讯云服务器上,在腾讯云轻量应用服务器上部署javaweb项目

    博主每篇博文的浪漫主义 [听说,思念是一种病?] https://www.bilibili.com/video/BV1z14y177VT?share_source=copy_web&vd_so ...

  4. 项目如何用jetty运行_如何用Cloudbase Framework部署一个Vue项目?

    Cloudbase Framework 是云开发官方出品的前后端一体化部署工具,无需修改业务代码,就能将 Vue 应用前后端一键托管部署在云开发平台.借助于 Cloudbase Framework,你 ...

  5. jq写的项目如何部署到静态服务器_如何在阿里云服务器上部署一个Web项目

    准备工作: 1:你得有云服务器! 2:你的云服务器上的tomcat必须正常运行! 如何在云服务器上发布一个Web项目? 1:需要制作好一个Web项目: 2:在本地电脑上tomcat上部署后运行正常: ...

  6. 【Flask】Nginx+Gunicorn+Supervisor部署一个Flask项目:步骤总结

    为什么要使用gunicorn? Flask 作为一个 Web 框架,内置了一个 webserver, 但这自带的 Server 到底能不能用? 官网的介绍: While lightweight and ...

  7. 在linux上部署一个web项目的小经验

    文章目录 设置IP地址和设置IP地址为静态 更改IP和设置IP为静态的方法 其他一些知识点 ps命令一点小知识 CentOS7可视化页面下设置为中文 MySQL部分 MySQL错误代码1130 lin ...

  8. windows10上使用一个tomcat部署2个项目

    前言:目前想在本机部署2个项目,网上查了之后,写下本篇随笔 1.准备工作 2.操作方法 3.运行2个项目 1.准备工作 2个war包(一个jprss.war和一个jenkins.war) 1个tomc ...

  9. 一个云服务器可以部署多个项目吗,云服务器可以部署多个项目

    云服务器可以部署多个项目 内容精选 换一换 一台云服务器同一时刻可以为最多8个终端提供业务体验,当用户数增多,云服务器数量不能满足业务需求时,您可以购买云服务器,实现多个用户在同一时间接入应用.新购买 ...

最新文章

  1. 英国再推人工智能报告: 四方面发力打造AI强国
  2. 回顾2017,展望2018
  3. ubuntu锁定mysql到任务栏_ubuntu16.04与mysql的运维注意事项
  4. 马化腾:用户体验的10/100/1000法则
  5. first OData Batch operation when Sales Pipeline is launched
  6. xyCMS框架的webshell
  7. mysql sqlite转换_数据库转换工具(SqliteToMysql)
  8. CSS实现兼容性的渐变背景(gradient)效果(转)
  9. 王者-甄别同一板块强弱股的方法【真假美猴王】
  10. Tableau Desktop 安装与破解
  11. QQ能上网浏览器无法上网
  12. 专访CAPA梁振宇:信息无障碍是互联网产品的必选项
  13. latex设置页面边距,页面大小,页边距,geometry宏包
  14. Linux驱动-platform设备驱动
  15. 面试了15位来自985/211高校的2020届研究生之后的思考
  16. JavaWeb酒店管理系统
  17. 怎么复制window上的内容到linux,怎样将文件从window系统复制到远程linux系统上
  18. java代理模式实现
  19. mysql 最大分区数量_最大分区数 分区限制
  20. 威刚xpg 龙耀 lancer ddr5 6000 32G超频记录

热门文章

  1. 华为堡垒机_华为容灾好用,Hypervisor
  2. 微软孤注一掷的Windows 8 情况如何
  3. 压缩算法:字符串(JSON)压缩和解压【JDK之Deflater压缩与Inflater解压】
  4. 智能手机之硬件开发知识篇一
  5. oracle 关键字 enable,oracleenable是什么意思
  6. html 浮动提示文本框,html浮动提示框功能如何实现 html浮动提示框功能实现代码...
  7. 第一章:操作系统概论
  8. 帮过网:公务员专业科目考试考什么
  9. Win10 桌面图标字体怎么单独换成深色,设置白色壁纸后图标字体看不见
  10. 阻塞式回调函数和延迟式回调函数