使用 Laravel 快速构建网站系列 —— 应用部署工具:Deployer

deployer

1、简介

Deployer是一个基于Laravel 5.1的、免费的、开源的PHP应用部署工具。由Stephen Ball编写和维护。

2、GitHub

https://github.com/REBELinBLUE/deployer

3、功能特性

  • 通过SSH部署应用方到多台服务器
  • 克隆项目git仓库
  • 安装composer依赖
  • 运行任意bash命令
  • 优雅地处理上述步骤出现的错误
  • 保持之前的部署
  • 监控cronjob的运行
  • 允许通过webhook触发部署

4、生产环境中使用

本项目GitHub仓库代码的master分支是开发分支,不能用于实际生产环境,当稳定后代码修改会合并到release分支并被打上发布标签。推荐在生产环境中使用最新的release分支。

5、系统要求

安装运行Deployer需要系统具备以下条件:

  • PHP 5.5.9+
  • 数据库,推荐MySQL或PostgreSQL
  • Composer
  • Redis
  • Node.js
  • 适用于Laravel的队列系统,推荐Beanstalkd,不过Redis也可以

可选项

  • Supervisor用于监听队列和Node.js套接字服务器的运行
  • 如果有大量的并发需要一台缓存服务器,否则默认的文件缓存就足够了

6、安装

克隆仓库

$ git clone https://github.com/REBELinBLUE/deployer.git

拉出最新版本

$ git checkout 0.0.21

安装依赖

$ composer install -o --no-dev
$ npm install --production

运行安装器

$ php artisan app:install

编辑额外配置(可选)

$ editor .env

7、更新

获取最新代码

$ git fetch --all
$ git checkout 0.0.21

更新依赖

$ composer install -o --no-dev
$ npm install --production

运行更新

$ php artisan app:update

学院君 has written 716 articles

资深PHP工程师,Laravel学院院长

8 thoughts on “使用 Laravel 快速构建网站系列 —— 应用部署工具:Deployer

  1. harvey.lan says:

    > Illuminate\Foundation\ComposerScripts::postInstall
    > ([ -f .env ] && [ -z “$TRAVIS” ] && sed -i ‘s/DB_TYPE=/DB_CONNECTION=/g’ .env) || exit 0
    sed: 1: “.env”: invalid command code .
    > ([ -f .env ] && [ -z “$TRAVIS” ] && php artisan optimize) || exit 0
    Generating optimized class loader
    The compiled services file has been removed.
    这个什么情况

  2. 守朢身影 says:

    运行composer install -o –no-dev
    出现Loading composer repositories with package information
    Installing dependencies from lock file
    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    – Installation request for intervention/image 2.3.2 -> satisfiable by intervention/image[2.3.2].
    – intervention/image 2.3.2 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.

    To enable extensions, verify that they are enabled in those .ini files:
    – D:Bitnamiphpphp.ini
    You can also run `php –ini` inside terminal to see which files are used by PHP in CLI mode.

  3. jian says:

    php artisan app:update 包错,说找不到 database.sqlite,换成 mysql php artisan migrate后
    [PredisConnectionConnectionException]
    由于目标计算机积极拒绝,无法连接。 [tcp://127.0.0.1:6379]

    这是怎么回事

      1. jian says:

        我 没有用Homestead ,我是自己搭配的本机环境 apache mysql php的,没有用虚拟机
        ,就到最后一步了,redis没有安装,我用window系统比较麻烦,是一定要安装redis吗?

发表评论

标记为*的字段是必填项(邮箱地址不会被公开)

你可以使用这些HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>