@@ -71,8 +71,9 @@ Deploying your Application on Heroku
7171
7272To deploy your application to Heroku, you must first create a ``Procfile ``,
7373which tells Heroku what command to use to launch the web server with the
74- correct settings. After you've done that, you can simply ``git push `` and
75- you're done!
74+ correct document root. After that, you will ensure that your Symfony application
75+ runs the ``prod `` environment, and then you'll be ready to ``git push `` to
76+ Heroku for your first deploy!
7677
7778Creating a Procfile
7879~~~~~~~~~~~~~~~~~~~
@@ -110,6 +111,27 @@ create the ``Procfile`` file and to add it to the repository:
110111 [master 35075db] Procfile for Apache and PHP
111112 1 file changed, 1 insertion(+)
112113
114+ Setting the ``prod `` environment
115+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116+
117+ During a deploy, Heroku runs ``composer install --no-dev `` to install all of the
118+ dependencies your application requires. However, typical `post-install-commands `_
119+ in ``composer.json ``, e.g. to install assets or clear (or pre-warm) caches, run
120+ using Symfony's ``dev `` environment by default.
121+
122+ This is clearly not what you want - the app runs in "production" (even if you
123+ use it just for an experiment, or as a staging environment), and so any build
124+ steps should use the same ``prod `` environment as well.
125+
126+ Thankfully, the solution to this problem is very simple: Symfony will pick up an
127+ environment variable named ``SYMFONY_ENV `` and use that environment if nothing
128+ else is explicitly set. As Heroku exposes all `config vars `_ as environment
129+ variables, we can issue a single command to prepare our app for a deployment:
130+
131+ .. code-block :: bash
132+
133+ $ heroku config:set SYMFONY_ENV=prod
134+
113135 Pushing to Heroku
114136~~~~~~~~~~~~~~~~~
115137
@@ -193,3 +215,5 @@ You should be seeing your Symfony application in your browser.
193215.. _`ephemeral file system` : https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem
194216.. _`Logplex` : https://devcenter.heroku.com/articles/logplex
195217.. _`verified that the RSA key fingerprint is correct` : https://devcenter.heroku.com/articles/git-repository-ssh-fingerprints
218+ .. _`post-install-commands` : https://getcomposer.org/doc/articles/scripts.md
219+ .. _`config vars` : https://devcenter.heroku.com/articles/config-vars
0 commit comments