With the Magento 2 Developer Beta out in the open, it’s time to revise our old guide and have a fresh, clear, step-to-step guide which helps with installing Magento 2 with Composer.
Introduction
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.
Code:
curl -sS https://getcomposer.org/installer | php
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.
Code:
mv composer.phar /usr/local/bin/composer
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:
Code:
cd magento2 && composer install
2.2 Via Composer
Code:
composer create-project magento/community-edition magento2 -s dev --prefer-dist
Because the 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 andmagento2-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-editionis 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 magento/product-community-edition project.
Code:
composer create-project magento/product-community-edition magento2 -s dev --prefer-source
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:
Code:
find . -type d -exec chmod 700 {} \; && find . -type f -exec chmod 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.
Code:
echo "CREATE DATABASE magento2" | mysql -u[mysqluser] -p
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:
Code:
php setup/index.php
--db_host=localhost \
--db_name=magento2 \
--db_user=root \
--db_pass=canbempty \
--backend_frontname=admin \
--admin_username=username \
--admin_password=password \
[email protected] \
--admin_firstname=First \
--admin_lastname=Last \
--base_url=http://magento2.local/ \
--base_url_secure=http://magento2.local/ \
--language=en_US \
--currency=USD \
--use_rewrites=true \
--use_secure=false \
--use_secure_admin=false \
--cleanup_database
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:
Code:
composer config repositories.magento composer http://packages.magento.com
Then, you should require the magento/sample-data and magento/sample-data-media package:
Code:
composer require magento/sample-data:0.42.0.beta1 magento/sample-data-media:0.42.0-beta1 --dev
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:
Code:
php dev/tools/Magento/Tools/SampleData/install.php --admin_username=username
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: small, medium, large and extra_large. Each profile is simply an XML filewhich defines how many items of each fixture should be created.
Code:
php dev/tools/performance-toolkit/generate.php --profile dev/tools/performance-toolkit/profiles/small.xml
Final words
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.
View more threads in the same category:
Bookmarks