The objective of this article is to guide you through Magento 2 installation, while helping to solve typical problems that might occure during this process.
Choosing The Right XAMPP-Version
There are several options for PHP available, but newest version is not the best. According to official system requirements for Magento 2.1 you may use PHP 5.6.5-5.6.x or PHP 7.0.6-7.0.x. Overview of supported versions:
You need to download XAMPP for your operating system with PHP 5.6.x or 7.0.x:
Minimal XAMPP Installation
You do not need FTP Server, Mail Server, Tomcat, Pearl, Webalizer and Sendmail for Magento 2, so you may disable these components to save memory and disk space:
You are also free to disable phpMyAdmin if you use another MySQL client, like MySQL Workbench.
Enable Required PHP Extensions
Magento 2 requires the following PHP extensions: curl, dom, mcrypt, simplexml, spl, xsl, intl, mbstring, ctype, hash, openssl, zip, xmlwriter, gd, iconv.
By default, xsl and intl are disabled in XAMPP. You just need to enable them by uncommenting appropriate lines in xampp/php/php.ini. For that, search for xsl and than for intl and remove the semicolon from the beginning of the line. On Windows you will find (CTRL+F) the following:
Change this line to:
Do the same for the line with extension=php_intl.dll. Save php.ini and restart Apache.
If you get an error when trying to stop Apache, restart XAMPP Control Panel with Administrator priviledges:
[Apache] Problem killing PID 2724
[Apache] Check that you have the proper privileges
After you have successfully restarted Apache, click on Try Again and proceed to the next installation step:
On Windows you can start the command line MySQL client from the directory xampp/mysql with the following command:
Alternatively you may use phpMyAdmin, a graphical MySQL client included with XAMPP by default. Create Database with the name of your choice:
mysql> create schema magento21;
Switch back to your browser and enter the database connection data accordingly. Magento 2 does not create any database structure at this step. Because of that, you will see the next installation step shortly after you click on Next:
Magento 2 suggests a cryptic admin path during installation, while in Magento 1.x you had to change it afterwards given security awareness.
If instead nothing happens and you stay in Step 2, please wait 30-60 seconds. The following (or similar) error may appear:
In this case you may find a solution in this article: Step 2: Add a Database – SQLSTATE[HY000]  Connection Timeout.
In Step 4, press C on your keyboard to jump to Central European Standard Time:
We skip to the last step. When you click on Install Now, the database structure and data will be created:
After a while the following screen should appear:
Reset and Restart Installation
If installation progress bar stops, you may find a solution in Magento 2 DevDoc: Installation stops at about 70%. However, patience is the solution in some cases, especially if you are installing Magento 2 with sample data.
In case Apache crashes or something else happens before the database have been completely built, you can reset and restart installation. For that, delete the configuration file app/etc/env.php and drop and create the database:
mysql> drop schema magento21; create schema magento21;