拉拉维尔部署...有标准的方法吗?

2022-08-30 19:14:08

我开始在我的项目中认真使用Laravel 4。我知道这个框架在开发RESTful应用程序时提供了许多优势。但我明白,关于如何使用Laravel进行部署/发布和应用程序,还没有达成共识。我仍在使用 FTP 将文件传输到我的生产主机。但我的问题是,除了从Laravel开始,有什么标准的方法可以做同样的事情吗?我忠实地相信,只要有一点独创性,就可以创建像php artisan publish [生产服务器名称和SSH凭据]这样的东西作为参数。

我从Anahkiasen/rocketeerChristopher Pitt那里读到了一些有趣的东西,这两者都是很好的来源,但是有一个共识或标准的方式来发布使用laravel的应用程序?


答案 1

这并不是一个真正的Laravel问题/问题,你必须在dev-ops论坛上问他们会怎么做来部署像你这样的PHP应用程序。

你的Laravel应用程序基本上是PHP应用程序,有些软件包是由Composer提供的,所以它更像是一个Composer应用程序而不是Laravel应用程序,但是你可能有一些Laravel需求,比如执行,或任何其他工匠命令来后期部署你的应用程序,或者不是,所以,它比Laravel更需要你的应用程序,对吧?php artisan migrate

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

1) 存储库git pull

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

3)执行以下载我安装的任何js或cssbower update

4) 执行以升级我的数据库模式php artisan migrate

5)执行并修复这些命令在下载文件时可能对我的目录造成的任何权限混乱chmodchown

看?这些是我的部署结构非常特有的东西,这就是为什么我真的不认为你会在部署应用程序上找到共识。当Anahkiasen第一次建造Rockiteer时,有人大喊:“如果我们已经有了Capistrano,你为什么要这样做?

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

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

不要忘记Laravel本身有自己的SSH Remote组件(我在Deeployer上也使用它,Rocketeer也使用它),这可能有助于你做任何你需要的事情来部署你的应用程序。

因此,您最好考虑您的部署需求,并使用软件包,应用程序或仅Laravel找到自己的方式。


答案 2

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

下面是一个简单任务的示例:

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

此外,它还具有良好的质量代码:

Code Quality Code Climate Code Coverage

Deployer


推荐