There are several modern ways to install Magento:

  1. Magento as Puppet Module: cmuench/Magento-Vagrant-Puppet-Nginx or bippo/puppet-magento
  2. Magento as Composer Dependency - so you create composer.json in your project and run composer install
  3. Or run composer create-project "kylecannon/magento" -s dev

Probably 2-nd way is more flexible to watch for latest versions. But do we need all dependencies of magento-project (connect20/mage_all_latest) or better just to use archive of the latest release?

Which way to choose?

2 Answers 2


Depends on your deployment infrastructure.

If you already use Puppet, stay with Puppet.

  1. actually looks like a nice default setup, but not enough usage to find proper support

Actually the most common way is still to have magento inside your project vcs and only use composer to install additional modules.

  • The best what composer do is to avoid files that wasn't change in your repository. So it is easier to make code review for reviewer without no need to check default files. You can use puppet to prepare enviropment, for example dev, testing, staging (if you have enough rigthts on server to run puppet). In some cases there is no possibility to run puppet. So I think it is better to use 2nd approach. Commented Apr 28, 2014 at 12:31

I have found the best way is to include Magento as a Git submodule. This means the core is not stored in your main project and you can upgrade/downgrade Magento versions by changing the submodule's referenced commit. You can also use Magento Composer Installer as per normal.

  • Can you show some example how to include Magento as a Git submodule? Commented Nov 11, 2014 at 14:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.