How to install Magento2

Hello everyone, in this tutorial , we'll see how to install Magento2 !

For this tutorial, I suppose you are under Linux (here Ubuntu) but if you are on Windows or Mac the principles remain the same, you just need to adapt.
As editor, I used vim (but you can also do it with any text editor). If you want to install it, use the following command:

apt-get install vim

EDIT(27 October 2020): to install it go to the doc, sincerely in this tutorial you have the general idea but it won't work directly, it evolves too fast and I can't update this article without stopping. You don't take the lead, locally use docker. Of course, we also assume for this tutorial that you have already installed apache2, php with the recommendations of magento (php_curl, activate url rewrite ...). If this can help, I create a docker container that will help you run this tutorial here:

Minimum system requirements for installing magento2:

In order to install magento2 you will need: - Being on Linux (Ubuntu, RHEL, CentOS, Debian ...)
- Have installed Apache (2.2 or 2.4)
- Have installed MySQL 5.6 or higher (Oracle and MS SQL Server is possible too)
- Have installed PHP 5.6 (minimum)

This is the minimum , prefer a good php7 and recent versions of apache and mysql;) With the following extensions:
PDO / MySQL, MySQLi, mbstring, mcrypt, mhash, simplexml, DOM, curl, gd2 or / and ImageMagick 6.3.7 (or higher) soap, curl, intl, bcmatch, iconv

 sudo add-apt-repository ppa:ondrej/php
sudo apt-get -y update
 sudo apt-get install -y php7.1 libapache2-mod-php7.1 php7.1-common php7.1-gd php7.1-mysql php7.1-curl php7.1-intl php7.1-xsl php7.1-mbstring php7.1-zip php7.1-bcmath php7.1-iconv php7.1-soap

- Have installed an SMTP server or a Mail Transfer Agent (MTA)
personally i like exim4

Now that everything is ok on your machine, let's get to the heart of the matter ...

Install the www.magento2.lan domain name and create my vhost:

Point your domain name to your local, add the domain name in your hosts file

vim /etc/hosts

And add the following line : (here my domain name is www.magento2.lan) www.magento2.lan

Add the virtualHost :

vim /etc/apache2/sites-available/magento2

Edit your vhost file like this :

<VirtualHost *:80>
    ServerName www.magento2.lan
    ServerAlias magento2.lan
    DocumentRoot /var/www/magento2
    <Directory /var/www/magento2>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    ErrorLog ${APACHE_LOG_DIR}/magento2_error.log

    # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined

Then activate your vhost and reboot (or reload with apache2 reload service ) apache:

a2ensite magento2
service apache2 restart

dont forget to activate the rewrite mod of apache2:

a2enmod rewrite
service apache2 restart

Save and close your browser ( echap > :wq )

Create the database for magento2

First we will list our databases and we will create one called magento2:

mysql> show databases;
| Database           |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
4 rows in set (0.01 sec)

mysql> create database magento2;
Query OK, 1 row affected (0.00 sec)

Install the magento2 files

For this part, I assume that GIT is installed on your pc. If it is not here how to install it:

apt-get install git

To install magento2 from the GIT repo, you can launch the following commands :

cd /var/www/
git clone

Install Composer if it is not already done and install magento

url -sS | php
mv composer.phar /usr/local/bin/composer
cd magento2 && composer install

Here your files are installed !

Provide the ability to write to var, media, pub

Modify the rights on your server to give the system write access to the folders pub/media/, var/, pub/static/ and app/ etc (to see your css during the installation for example).

find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +

For more security, do not make 777 on your machines prod eh !! ^^
Here you can now use the magento2 installer!
If after the installation you have CSS that are not present , the layout of magento is broken ... you had a rights issue somewhere in these folders and magento2 could not create CSS files (or themes folders). Change the rights, delete the app/etc/local.xml file and redo the installation !

Use the magento2 installer

You can now log in with your browser on www.magento2.lan, so follow the installation procedure:

Here is "clic clic", you enter the necessary info and it should work :)

ERREOR : "Host 'apache2.dockerapache2mysql_default' is not allowed to connect to this MySQL server"
2 possibles cases :
- you didn't change the bind adresse of mysql to in your my.cnf file

root@51ca7e014513:/$ vim /etc/mysql/mysql.conf.d/mysqld.cnf 
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address =

- the mysql user didn't have the right to connect to your database remotely:

mysql> CREATE USER 'pfay'@'%' IDENTIFIED BY 'pfay123';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'pfay'@'%' IDENTIFIED BY 'pfay123';              
Query OK, 0 rows affected, 1 warning (0.00 sec)

How to install sample datas for magento2 ?

We will first go into our directory of magento2, at the root and we will clone the project magento2-sample-data, we will then put the right rights on the folder then we will run the script that allows to create links with samples Datas. We then launch the update and that's it ... magento2 is installed with the samples datas!
Here's how:

root@e63dc125d882:/var/www/html/magento2$ git clone
root@e63dc125d882:/var/www/html/magento2$ chown www-data:www-data -R magento2-sample-data/            
root@e63dc125d882:/var/www/html/magento2$ php -f magento2-sample-data/dev/tools/build-sample-data.php -- --ce-source="./"                                
root@e63dc125d882:/var/www/html/magento2$ ./bin/magento setup:upgrade

Congratulations to you who installed Magento2! Now you will be able to follow the tutorials to learn how to develop under Magento2!

Do not hesitate to ask your questions in the comments. Good luck to all for the continuation of the tutorials.
Books that can help you :
  • Livre Magento 2 Developer's Guide by Branko
  • Livre Mastering Magento2 Second Edition
  • Livre Magento 2 Cookbook
Questions about this lesson
No questions for this lesson. Be the first !

You must be logged in to ask for help on a lesson.