Tired of skimming hundreds among 34,500,000 online pieces floating on how to set up Magento 2 but yet failed to set up? Scan this article right now to find out how to install Magento 2 in the clearest way of stating installation steps and simplified focusing on what you need to handle during the process.
1. Pack your must-need-items for Magento 2 installation “job”
Before reading further on how to set up Magento 2, you should notice:
Magento 2 is compatible with all systems: Windows, Linux (RHEL, CentOS, Ubuntu, Debian…), Mac OS, etc.
Read this list to note down 4 things you should prepare:
- PC with operating systems.
- Programs to create a local web server:
- For Windows, you can download and install Xampp;
- For Linux, you can find online resources to know how to install Apache (2.2/ 2.4) of Nginx (1.8 and above).
(You can find set up web server on Windows and CentOS7 practice tutorials in index 2 of this article.)
- Your public server IP and a minimum 2GB RAM – use swap file if your system weighs less than that.
- 1 version of Magento CE. I use 2.2.4 sample data to tutor. You can conduct on alternative Magento CE, find the latest version on Magento download page https://magento.com/tech-resources/download
There may be people questioning “Why are there sample data and no sample data?”
So what is a sample data? It is a Magento version which Magento suppliers have already added database: category, product, customers, etc., Sample data version is somewhat more useful for developers. No sample data is a version without any sample database, just like the name.
👉 You can install Magento 2 with simple conditions above. In the next part, I will instruct you how to install Magento step by step.
2. Roll into operation
2.1. Install Magento 2 using Xampp on Windows:
Step 1: Set up web server – Install Xampp as an alternative for Apache HTTP server, which is not supported on Windows. Xampp is a pack software of Apache, MySQL, PHP and Pearl.
Download Xampp here. Run the setup wizard. Install to another destination than C:\Program Files (x86) or deactivate User Account Control with msconfig after set up to optimize Xampp feature without any restrictions.
E.g: Set installation folder C:\Xampp for not to deactivate UAC.
Xampp Control Panel enables user start and stop activities of Apache HTTP and MySQL.
Step 2: Download Magento file from this link https://magento.com/tech-resources/download. Extract downloaded file and put them in folder xampp/dhtdocs in Xampp. For better and quicker recognition, the folder should be renamed.
Step 3: Input database for Website.
After completing Xampp set up, you start to operate Apache and MySQL to have a virtual host on your computer.
Open your browser and enter this link: http://localhost:8080/phpmyadmin. In this scope of the article, I use tool adminer.php which share identical operation flow with phpmyadmin. Log on to Mysql using default username: “root”, password: ”.”
Choose Create Database in Mysql to input database for Magento website. I name my database m224prefix.
👉You have created Database for your website successfully. Now we move on to Magento 2 installation
Step 4: Install Magento 2
Open a new private/incognito window, type navigation link localhost:8080/m224prefix to begin installation process. Please note that the link is localhost:8080/ and replace m224prefix by your Magento folder name in htdocs which you have extracted and renamed in the previous step.
After navigating to the URL, there appears a Magento notification asking you to confirm terms and conditions before installation. Click Agree and Setup Magento to be loaded to:
i: Readiness check
In this step, Magento checks installation statics, PHP version, PHP extensions, file permission in your main server to assess conformity to Magento. If conforms, you will be informed to move on next steps. If errors occur, please find solutions at Appendix of this article providing some common errors during installation timeline.
ii: Add database
In this step, you put in database for Website
iii: Web configuration
This step determines frontend and backend‘s URLs
iv: Customize your store
You can configure website‘s statistics such as time zone, default currency, store language, etc. If you are a developer, you might pass this step and move on to the next one.
v: Create admin account
In this step, you set admin account of the website by username, password, email. Don’t forget to remember that information, of course.
vi: Click Install Now button
It takes 15 to 40 minutes to have a Magento CE full function website.
👉 Complete Magento 2 installation “job” on Windows
After 6 entire steps are done, you complete your Magento website with customized settings as you wish. Magento will help you check your website’s configuration.
2.2. Install Magento 2 on CentOS 7:
It is prerequisite to have a server running CentOS 7. In this articles, I use MySQL, you can have MariaDB which is found in the repository instead.
Step 1: Root access to your account. If you are logged in as non-root user, enter this command to login as root user
Step 2: Update the package:
yum -y update
Step 3: Install Apache as web server and MySQL:
- Find Apache (httpd) in default CentOS 7 repository. Enter this command to install the package:
yum -y install httpd
- Verify the installation to see the version
- MySQL has been removed from CentOS 7 repository, retrieve (download) from MySQL Yum repository here and add MySQL to the repository
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
- Start Apache and MySQL, enable them to automatically start on boot, enter following commands separately:
systemctl start httpd systemctl start mysqld systemctl enable httpd systemctl enable mysqld
Configure to use mod_rewrite and .htaccess for Apache:
- Open by entering
- Find this line
- Add this line right below
LoadModule rewrite_module modules/mod_rewrite.so
- Look for the following line
Change the value of AllowOverride None to AllowOverride All
- Save file
- Set temporary password for MySQL, enter:
grep ‘temporary password’ /var/log/mysqld.log
- Secure MySQL setup, enter:
Step 4: Install PHP 7, enter
- Retrieve and install PHP 7, enter:
yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
- Update the changes
yum -y update
- Now install PHP7 with all necessary modules with the command below:
yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo
- Verify the installation version of PHP
- Edit php configuration file, enter
Edit line memory limit, line date.timezone, currency, etc. for example
memory_limit = 2048M date.timezone = America/Washington language: en_US
Step 5: Save the file and restart Apache after changing settings
systemctl restart httpd
Step 6: Create Database
- Test the installation by entering command:
mysql -u root -p
- Sample output:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 45 Server version: 5.6.19-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
- Enter the MySQL root user’s password when prompted
- Enter the following commands in the order shown to create a database instance named magento with username magento:
create database magento; create user magento IDENTIFIED BY 'magento'; GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'magento'; flush privileges;
- To quit the command prompt, enter
- Verify the database:
mysql -u magento -p
- Check database, enter:
If the MySQL monitor displays, you created the database properly. If an error displays, repeat the preceding commands. Then type exit to exit
Step 7: Install composer
- Check if Composer is available or not by entering any of the two commands:
composer --help composer list --help
- if Command helps displays, Composer is already installed. If error displays, install Composer as the following guidance:
- Enter following commands
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
- Verify composer installation
Step 8: Install Magento 2
- Change user to magento user
sudo su - magento
- Download magento file to start installation, enter
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html
- Copy key from your Magento marketplace account store them in the auth.json file to have the same key when update installation.
Authentication required (repo.magento.com): Username: b506ec6795d940530ac246e4e209c35e Password: Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn]
- Check interface of your Magento store, enter following sample in the navigation bar
- Log into the backend to check database, configuration, etc.
Step 9: Setup Magento Cron
- Enter the following command as Magento user;
php ~/public_html/bin/magento cron:install
- Verify cron installation
Appendix. Resolve some common errors while installing Magento 2 on Windows
- After set up is done, some of you might get confused to look at your website. It might not be the interface you expected. You may suppose that you have done wrongly and reinstall, yet similar the web interface repeated. The cause to this problem is of initial set up, CSS file has yet changed into pub file, view_processed.
- It is easy to fix this error. Magento provides you a command in cmd. Open cmd in file code m224prefix that you have put into xampp/htdocs by using keystroke “shift” + right click “Open PowerShell Window here”. In cmd display, enter this command line:
For v2.2 and above:
php bin/magento setup:static-content:deploy –f
For v1.1.9 and below:
php bin/magento setup:static-content:deploy
2. While installing Magento – readiness check, an error message could appear: Magento requires some Php extensions in Xampp versions on your computer.
To fix this error, go to Xampp -> (Apache) – Config -> php.ini and delete semicolon “;” at the beginning of each extension in php.ini file.
3. Installing might keep pending at 60% or 67% as following:
It is popular to meet this situation in between the process, in fact, the installation still runs, you could wait and reload the page after 40 minutes to complete website’s installation.