In June, we hosted Tim which wrote a guide on installing Magento 2 with Composer on an nginx webserver. The Magento 2 project structure has changed a lot and that guide is not really applicable anymore.
There is official documentation. This is merely an alternative step-to-step guide if you just want to get to it without reading the documentation thorough. We plan to keep this guide updated with newer Magento 2 code drops.
This guide assumes you already have a functioning LAMP-stack with the minimum Magento 2 requirements (>= PHP 5.4.11 & >= MySQL 5.6.X).
1. Install Composer
You can skip this step if you have Composer already installed. Windows users have an installer available.
1.1 Make Composer Globally Available
If you wish, you can additionally install Composer globally so you don’t have to type
php /path/to/composer.phar every time. The Windows-installer will automatically set up the PATH system variable.
2. Download Magento 2
2.1 Via Git
This clones the repository and puts it under the
magento2 directory. The thing is that you now still have to manually invoke Composer to fetch all the dependencies:
2.2 Via Composer
magento/community-edition package refers to the
magento/magento2 repository on Github, using the
--prefer-source option will make Composer figure out the rest for us.
2.3 Build from source
At the moment of writing, the Magento 2 project is divided into two Github repositories: magento2 and magento2-community-edition. The former hosts the complete Magento 2 code base and the latter has recently been completely wiped and only hosts the
composer.json for “building from source”.
The magento2 repository is known on Packagist as magento/community-edition. magento2-community-edition is known on Packagist as magento/product-community-edition. They couldn’t have made it any more confusing!
If you prefer have all the Magento modules collected for you instead of having them prepared already, as is the case with the
magento/community-edition package, you can create a new
3. Set Up Permissions
After all dependencies are retrieved, you should set the correct permissions on the entire Magento 2 installation directory. The official documentation recommends chmod’ing all directories to 700 and all files to a level of 600:
In case you are still facing problems, you are probably logged in under a different user and have to give ownership of the installation directory to the web server user.
4. Create The Database
Given that you already have a MySQL user with the correct permissions, create an empty database to work with. If you really want to, you can also use an existing database and pick a table-prefix during the installation process but… that’s not something a lot of people do.
5. Install Magento 2
That’s about it! You can now either follow the installation wizard or use the command line.
5.1 Installation Wizard
Just fire up the browser, navigate to the host where you installed Magento 2 and if everything went correct, you should be redirected to the setup tool.
5.2 Command Line Installer
Magento 2 ships with a command line installer and can be invoked as followed:
The above command should be edited to your needs and executed from the Magento 2 root directory. What follows, is a bit of scrolling text and if everything went correct, you are informed that the installation has been completed.
6. Fill the database
You should now have a fresh Magento installation. If you want to fill it with some data, you can either make use of the sample data or use the performance toolkit.
6.1 Using Sample Data
Because the sample data is a separate development tool available via the Magento 2 packages repository, you first have to update the
composer.json file so it is aware that the repository exists:
Then, you should require the
Due to the size of the sample-data-media package, it will take a while before those dependencies are installed. After it’s done, execute the sample data installer:
6.2 Using The Performance Toolkit
Another option is to use the generator of the performance toolkit to fill the database with static entries. The following profiles are available:
extra_large. Each profile is simply an XML file which defines how many items of each fixture should be created.
Hopefully this is a clear guide on how to install Magento 2 with Composer. Most of this information is simplified and readily available with more depth in the official documentation. In case we missed anything, you have a trick to share or think something is wrong, your input is welcome.