Heroku云部署ob直播app
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
Heroku云部署ob直播app
这一步一步菜谱描述了如何将一个Symfony的web应用程序部署到Heroku云平台。ob娱乐下载ob直播app它的内容是基于原来的文章Heroku出版的。
设置
先建立一个新的Heroku的网站,注册与Heroku或与您的凭据登录。然后下载并安装Heroku直到在您的本地计算机上。
你也可以看看开始使用PHP在Heroku指南获得更多熟悉的细节处理在Heroku PHP应用程序。
准备您的应用程序
Heroku部署一个Syob娱乐下载mfony应用程序不需要任何改变的代码,但它需要一些小的调整它的配置。
默认情况下,Symfony应用将ob娱乐下载登录应用程序的应用程序/日志/
目录中。这不是理想Heroku使用短暂的文件系统。Heroku,日志是用最好的办法处理Logplex。和向Logplex日志数据的最佳方法是通过编写STDERR
或STDOUT
。幸运的是,使用Syob娱乐下载mfony的独白库日志记录。因此,一个新的日志目的地只是改变一个配置文件。
打开应用程序/配置/ config_prod.yml
文件,定位独白/处理/嵌套
部分(或创建它如果它还不存在),改变的价值路径
从“% kernel.logs_dir % / % kernel.environment % . log”
来“php: / / stderr”
:
1 2 3 4 5 6 7 8
# app / config / config_prod.yml独白:#……处理程序:#……嵌套:#……路径:“php: / / stderr”
一旦应用程序部署,运行heroku日志——尾巴
防止流日志Heroku打开在你的终端。
Heroku上创建一个新的应用程序
创建一个新的Heroku可以推到的应用程序,使用CLI创建
命令:
1 2 3 4 5
heroku创建创建强大的-哈姆雷特- 1981美元在组织heroku……完成堆栈是雪松http://mighty -哈姆雷特- 1981. - herokuapp.com/ | git@heroku.com:强大的-哈姆雷特- 1981. - Git Git远程heroku补充道
现在您已经准备好部署应用程序,在下一节中解释。
Heroku部署您的应用程序
你的第一次部署之前,你需要做的只是三个更多的事情,解释如下:
1)创建一个Procfile
默认情况下,Heroku将启动Apache web服务器和PHP应用程序服务。然而,有两个特殊情况下适用于Symfony应用程序:ob娱乐下载
- 在文档根
web /
目录,而不是在应用程序的根目录; - 作曲家
bin-dir
,供应商的二进制文件(因此Heroku的引导脚本)放置,bin /
,而不是默认的供应商/ bin
。
请注意
供应商二进制文件通常是安装供应商/ bin
作曲家,但有时(如当运行Symfony项目标准版!),位置会有所不同。ob娱乐下载如果有疑问,你可以随时运行作曲家配置bin-dir
找出正确的位置。
创建一个新文件Procfile
(没有任何扩展)在应用程序的根目录,并添加以下内容:
1
网络:web / bin / heroku-php-apache2
请注意
如果你喜欢使用Nginx,也可用在Heroku,您可以创建一个配置文件从Procfile指向它所描述的Heroku的欧宝官网下载app文档:
1
网络:bin / heroku-php-nginx - c nginx_app。配置web /
如果你喜欢工作在命令控制台,执行下面的命令来创建Procfile
文件并将其添加到存储库:
1 2 3 4 5
美元回声“web: web / bin / heroku-php-apache2”> Procfile git添加美元。git commit - m美元“Apache和PHP Procfile”主35075 db Procfile为Apache和PHP文件发生了变化,1插入(+)
2)设置环境刺激
在部署期间,Heroku运行作曲家安装——no-dev
安装您的应用程序需要的所有依赖项。然而,典型的post-install-commands在composer.json
安装,如资产或清除(或预热)缓存,使用Symfony的运行ob娱乐下载dev
默认的环境。
这显然不是你想要的——应用程序运行在“生产”(即使你使用它只是一个实验,或登台环境),所以任何构建步骤应该使用相同的刺激
环境。
值得庆幸的是,此问题的解决方案很简单:Symfony将一个环境变量命名ob娱乐下载ob娱乐下载SYMFONY_ENV
和使用,环境如果没有其他是显式地设置,Heroku暴露配置var作为环境变量,您可以发出一个命令准备部署你的应用:
1
heroku美元配置:集ob娱乐下载SYMFONY_ENV =刺激
谨慎
请注意,依赖composer.json
中列出的require-dev
节期间从来没有安装部署在Heroku。这可能导致问题如果Symfony环境依赖包。ob娱乐下载解决这个问题的办法是将这些包从require-dev
到需要
部分。
3)推动代码Heroku
接下来,这是最后一次向Heroku部署应用程序。如果你是第一次做这个,您可能会看到一条消息,如下列:
1 2 3
主机heroku.com(50.19.85.132)”的真实性不能成立。RSA密钥指纹是8 b: 48:5e: 67:0e: c9:16:47:32: f2:87:0c: 1 f: c8:60:广告。你确定你要继续连接(是/否)?
在这种情况下,您需要确认输入是的
和打<输入>
关键,理想的情况是在你验证的RSA密钥指纹是正确的。
然后,部署应用程序执行这个命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
git推动美元heroku主初始化库,完成。统计对象:130年,完成。三角洲压缩使用4线程。压缩对象:100% (107/107),完成。写作对象:100%(130/130),70.88简约| 0字节/秒,完成。总计130(δ17),再利用0(δ0)- - - - - - > PHP应用程序检测到- - - - - - >设置运行时环境……PHP 5.5.12 - Apache 2.4.9 Nginx 1.4.6 - - - - - - >安装PHP扩展:opcache(自动;捆绑,用“ext-opcache.ini”)- - - - - - >安装依赖……作曲家版本64 ac32fca9e64eb38e50abfadc6eb6f2d0470039 2014-05-24 20:57:50加载作曲家从锁文件存储库安装依赖包信息-…生成优化的自动装载文件创建“应用程序/配置/ parameters.yml”文件清理缓存为开发环境与调试真正的安装资产使用硬拷贝选项安装为ob娱乐下载Symfony \ \ FrameworkBundle捆绑到web /包/框架安装资产为Acme \ DemoBundle为web /包/ acmedemo安装资产为Sensio赞助\ \ DistributionBundle捆绑到web /包/ sensiodistribution - - - - - - >建筑运行时环境……- - - - - - >发现过程类型Procfile声明类型- >网络- - - - - - >压缩……完成,61.5 mb - - - - - - >启动……完成v3 http://mighty -哈姆雷特- 1981. - herokuapp.com/部署Heroku git@heroku.com:强大的git -哈姆雷特- 1981. *(分公司)主- >主
这是它!如果你现在打开你的浏览器,通过手动指向URLheroku创建
给你,或者通过使用Heroku直到之后,应用程序将回应:
1 2
heroku开放开放强大-哈姆雷特- 1981美元……完成
你应该看到Symfony应用程序在您的浏览器中。ob娱乐下载
谨慎
如果你把你的第一个步骤在Heroku使用全新安装Symfony的标准版,你可能会遇到一个404页的没有发现错误。ob娱乐下载这是因为路线/
由AcmeDemoBundle定义,但AcmeDemoBundle只是装载在开发环境(检查你吗AppKernel
类)。试着打开/应用程序/例子
从AppBundle。
自定义编译步骤
如果您希望在一个构建执行额外的自定义命令,您可以利用Heroku自定义编译步骤。想象你想删除dev
前端控制器从生产环境Heroku为了避免潜在的脆弱性。添加一个命令来删除web / app_dev.php
作曲家的post-install-commands会工作,但它还消除了每个控制器在本地开发环境中作曲家安装
或作曲家更新
分别。相反,您可以添加一个定制的作曲家命令命名编译
(这个关键的名字叫Heroku约定)脚本
你的节composer.json
。命令列出钩进Heroku的部署过程:
1 2 3 4 5 6 7
{“脚本”:{“编译”:【“rm web / app_dev.php”]}}
这也是非常有用的构建资产在生产系统中,例如Assetic:
1 2 3 4 5 6 7
{“脚本”:{“编译”:【“app /控制台assetic:转储”]}}
节点。js的依赖性
建立资产可能取决于节点包。uglifyjs
或uglifycss
资产缩小。安装节点在部署期间需要一个节点安装包。但目前,Heroku使用PHP buildpack编译你的应用程序,这是自动的composer.json
文件,不包括安装一个节点。因为节点。js buildpack优先级高于PHP buildpack(见Heroku buildpacks),添加一个package.json
清单你的节点的依赖性使Heroku选择节点。js buildpack相反:
1 2 3 4 5 6 7 8 9 10
{“名称”:“myApp”,“引擎”:{“节点”:“0.12.x”},“依赖”:{“uglifycss”:“*”,“uglify-js”:“*”}}
与下一个部署,Heroku编译你的应用程序使用节点。js buildpack和npm包安装。另一方面,你的composer.json
现在忽略。编译你的应用程序与buildpacks, node . js和PHP,您需要使用两个buildpacks。覆盖buildpack自动检测,需要显式地设置buildpack:
1 2 3 4 5 6 7 8
美元heroku buildpacks:集heroku / nodejs Buildpack集。下一个发布您的应用程序将使用heroku / nodejs。运行git push heroku主人使用这个buildpack创建一个新版本。美元heroku buildpacks:集heroku / php——指数2 Buildpack集。下一个发布您的应用程序将使用:1。heroku / nodejs 2。heroku / php运行git push heroku主人使用这些buildpacks创建一个新版本。
下一个部署,可以受益于buildpacks。这个设置还使Heroku环境利用基于节点的自动构建工具咕哝着说或狼吞虎咽地吃。