我开始在我的项目中认真使用Laravel 4.我知道这个框架在开发RESTful应用程序时提供了很多优势.但我明白,对于如何使用Laravel进行部署/发布和应用程序开发,目前还没有达成共识.我仍在使用FTP将文件传输到我的生产主机.但我的问题是,除了拉维尔之外,还有什么标准的方法可以做到这一点吗?我坚信,只要有一点独创性,就可以创建php artisan publish [Production server name and SSH credentials]个左右的参数.

I have read something interesting from Anahkiasen/rocketeer and Christopher Pitt, both great sources but there is a consensus or standard way to publish applications using laravel?

推荐答案

This is not really a Laravel problem/question, you have to ask on a dev-ops forum what they would do to deploy a PHP application like yours.

Your Laravel application is basically PHP application, some packages are provided by Composer, so it's more a Composer application than a Laravel one, but you might have some Laravel needs, like executing php artisan migrate, or any other artisan command to post-deploy your application, or not, so, it's more a requirement of your application than Laravel, right?

我开发了一个用于部署的包,Deeployer.这个包的目的是,每当我将应用程序推送到生产(或登台)分支时,Github都会启动一个钩子,告诉我的服务器执行任何需要的操作,将我的应用程序部署到我自己的VPS.在基本部署中,它将:

1) git pull the repository

2) 执行composer update以更新我的供应商文件夹

3) 执行bower update下载我安装的任何js或css

4) 执行php artisan migrate以升级我的数据库架构

5) Execute chmod and chown to fix whatever permission mess those commands might have made to my directories while downloading files

看见这些都是我的部署 struct 非常特殊的事情,这就是为什么我真的不认为你会对部署应用程序达成共识.当阿纳凯森第一次制造火箭时,有人喊道:"如果我们已经有了卡皮斯特拉诺,你为什么要这么做?".

Yesterday I bumped into this one: http://www.deployhq.com/packages, used by Ben Corlet from Cartalyst and other nice guys.

There's also Rocketeer: http://rocketeer.autopergamene.eu/.

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

所以,你最好想一想你的部署需求是什么,然后找到你的方法,使用一个软件包、应用程序或者仅仅是Laravel.

Laravel相关问答推荐

嵌套数组请求的 Laravel 验证,其中如果整数之一为零,则另一个应大于零

如何在自定义表单请求中获取错误验证数据

Laravel:子文件夹中的 lang 文件

Laravel 5.8 在从已清除的会话中单击注销后显示419 Page Expired

使用命令行界面停止 laravel 服务器

Laravel 5.1 - 如何在进度条上设置消息

如何对有序的has many关系进行分页?

Carbon现在时间错了

在 laravel 中更改时区

Laravel Blade 没有额外的空格?

调用未定义的函数 mb_strimwidth

如何使用外部图像生成 html div 的 screenshot截图?

在 Laravel 容器中覆盖单例

Laravel 和 PHPStorm 项目的 gitignore 中包含什么?

将图标添加到 Laravelcollective 提交按钮

调用未定义的方法 Illuminate\Routing\Route::get()

Laravel 4:将什么作为参数传递给 Url 类?

Laravel 验证:数字和整数之间的区别?

为什么`catch (Exception $e)` 不处理这个`ErrorException`?

在 Laravel 中翻译特定语言