在我的项目中,我开始认真地使用Laravel 4.我知道这个框架在开发RESTful应用程序时提供了许多优势.但我理解,对于如何使用Laravel部署/发布和应用程序没有达成共识.我仍然使用FTP将文件传输到我的生产主机.但我的问题是,是否有任何标准方法可以从Laravel那里做同样的事情?我忠实地相信,只要有一点创造力就可以创建像php artisan发布[生产服务器名称和SSH凭证]作为参数的东西.
我从Anahkiasen/rocketeer和Christopher Pitt那里读到了一些有趣的东西,两者都有很好的来源,但是有一种共识或标准的方式来使用laravel发布应用程序?
有很多部署工具,比如Capistrano.我建议你看看Deployer:它有简单的api,与流行的框架和应用程序的配方捆绑在一起,可以执行100%的并行任务.它也只需要PHP.
deployer.org
github.com/deployphp/deployer
如何部署Laravel
这是一个简单任务的例子:
task('my_task', function () { // Your tasks code... });
它还有一个高质量的代码:
这不是一个真正的Laravel问题/问题,您必须在开发者论坛上询问他们将如何部署像您这样的PHP应用程序.
您的Laravel应用程序基本上是PHP应用程序,有些软件包由Composer提供,因此它更像是一个Composer应用程序而不是Laravel应用程序,但您可能有一些Laravel需求,如执行php artisan migrate
,或任何其他工匠命令来部署您的应用程序,或者不是,所以,它比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.