Laravel 部署...有标准方法吗? [已关闭]

问题描述 投票:0回答:5

我开始在我的项目中认真使用 Laravel 4。据我所知,这个框架在开发 RESTful 应用程序时提供了许多优势。但据我所知,对于如何使用 Laravel 进行部署/发布和应用程序还没有达成共识。我仍在使用 FTP 将文件传输到我的生产主机。但我的问题是,除了 Laravel 之外,是否有任何标准方法可以做到同样的事情?我坚信,只要有一点聪明才智,就可以创建类似 php artisanpublish [生产服务器名称和 SSH 凭据] 作为参数。

我从 Anahkiasen/rocketeerChristopher Pitt 那里读到了一些有趣的内容,这两个来源都很不错,但是有一个共识或标准的方法来使用 Laravel 发布应用程序吗?

php deployment laravel web-deployment
5个回答
20
投票

这并不是真正的 Laravel 问题,您必须在开发运营论坛上询问他们会如何部署像您这样的 PHP 应用程序。

您的 Laravel 应用程序基本上是 PHP 应用程序,一些包是由 Composer 提供的,因此它更像是一个 Composer 应用程序而不是 Laravel 应用程序,但您可能有一些 Laravel 需求,例如执行

php artisan migrate
或任何其他用于部署后的 artisan 命令你的应用程序,或者不是,所以,它比 Laravel 更需要你的应用程序,对吗?

我开发了一个包来进行部署,Deeployer。这个包的目的是,每次我将应用程序推送到生产(或暂存)分支时,Github 都会触发一个钩子,告诉我的服务器执行将应用程序部署到我自己的 VPS 所需的任何操作。在基本部署中,它将:

1)

git pull
存储库

2) 执行

composer update
更新我的供应商文件夹

3)执行

bower update
下载我安装的任何js或css

4) 执行

php artisan migrate
升级我的数据库架构

5) 执行

chmod
chown
来修复这些命令在下载文件时可能对我的目录造成的任何权限混乱

看到了吗?这些对于我的部署结构来说是非常特殊的,这就是为什么我认为您不会就部署应用程序达成共识。当 Anahkiasen 第一次构建 Rocketeer 时,有人喊道:“如果我们已经有了 Capistrano,你为什么还要这样做?”。

昨天我遇到了这个:http://www.deployhq.com/packages,由来自 Cartalyst 的 Ben Corlet 和其他好人使用。

还有 Rocketeer:http://rocketeer.autopergamene.eu/

不要忘记 Laravel 本身有自己的 SSH Remote 组件(我在 Deeployer 上使用了它,Rocketeer 也使用了它),这可能会帮助你完成部署应用程序所需的任何操作。

因此,您最好考虑一下您的部署需求是什么,并找到自己的方法,使用包、应用程序或只是 Laravel。


6
投票

有很多部署工具,比如Capistrano。我建议您看一下 Deployer:它有简单的 api,捆绑了流行框架和应用程序的配方,并且可以执行 100% 并行任务执行。而且它只需要 PHP。

这是一个简单任务的示例:

task('my_task', function () {
    // Your tasks code...
});

它还有一个高质量的代码:

Code Quality Code Climate Code Coverage

Deployer


2
投票

您可能想查看Rocketeerhttp://rocketeer.autopergamene.eu/


0
投票

如果你要求一个标准,我认为不存在。但是 FTP 的替代方案,您是否考虑过使用 git 将站点部署到生产环境?

具体操作方法如下: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

基本上总结是,您有一个

bare git repository
,您自己的
local repository
和您的
production repository
..现在通过配置正确的挂钩,当您推送到
bare git repository
时,其中的挂钩将告诉生产存储库将您提交到生产中的最新更改拉下来。此外,根据环境在配置中设置正确的凭据..您可以创建一个新文件夹 ex。
app/config/production
app/config/stage
,即使同时打开两台服务器也可以轻松运行应用程序..


-1
投票

我也不太确定标准方法。你确实有 ForgeEnvoyer 可以与 Laravel 配合使用,所以这是值得研究的。

这里是使用 Rocketeer 和 Git 部署 Laravel 的方法。它非常容易设置,并允许您使用多个服务器(例如登台、生产等)

http://dericcain.com/blog/deploying-laravel-5-with-rocketeer

© www.soinside.com 2019 - 2024. All rights reserved.