First of all, make sure that you have set the proper settings in php.ini configuration file. To see the recommended settings, please check this out:
Now make sure you have installed composer and other required PHP extensions (install missing PHP extensions). You can check out the system requirements for Magento 2 here:
Next, check out your files and folder permissions. Magento uses a three-bit mask that you subtract from the UNIX defaults of 666 for files and 777 for directories. Here’s what that means:
775 for directories, which means full control by the user, complete
control by the group, and enables everyone to traverse the directory.
Shared hosting providers typically require these permissions.
664 for files, which means writable by the user, writable by the
group, and read-only for everyone else.
After making sure of all the above things, migrate your Magento 2 store from one location to another with the following steps:
1. Export Magento 2 Database
By default, you may have
PHPMyAdmin or a similar tool that is capable of exporting your database. Open your database tool and export your Magento 2 database in the
.sql file format, because most of the database tools support the
2. Backup and Transfer Magento 2 Files & Folders
After exporting your database, now you will need to download all files & folders of Magento 2 from your current location and upload them to the new location. It might be a time-consuming task, as it depends on how big your Magento 2 store is. If possible, a good approach is to create a zip archive of the files & folders before downloading them.
Go to Magento 2 installation directory, create a zip archive of all the files & folders and then download it.
Upload the downloaded zip file to the new location and extract it to the new desired destination folder for the Magento 2.
3. Import Magento 2 Database
Once you have transferred the Magento 2 files & folders, you should import the database to the new server. Go to the
PHPMyAdmin, create a new database. Assign credentials to the database or create new username and password for it. In step 1, as we had already exported the database, import the database
.sql file into this new database.
4. Edit Magento 2 Configurations
We are done with exchanging files between both the locations. Now it’s the time to configure your Magento 2 store with your new location. First, you need to edit the
app/etc/env.php file with new Magento 2 database configurations according to your new server. Open the
env.php file and alter the lines below:
‘table_prefix’ => ”,
‘host’ => ‘DATABASE_HOST’,
‘dbname’ => ‘DATABASE_NAME’,
‘username’ => ‘DATABASE_USERNAME’,
‘password’ => ‘DATABASE_PASSWORD’,
‘active’ => ‘1’,
‘host’ is the database hostname. Most commonly used host is “localhost”.
‘dbname’ is the database name. Use the one you had created in step 3.
‘username’ is a username that has full privileges to your new database.
‘password’ is the password for that particular database user.
New server means new domain name. You have to replace old server domain name with new domain name. For this, you need to modify the value of
core_config_data table. Enter the new domain name in the value column for both records.
5. Clear Magento 2 Cache, Sessions and Deploy Static Content
The final step is to clear the Magento 2 cache and deploy static content. Go to following paths and delete everything:
ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*
ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS
Now, we are setting up static content to deploy on our Magento 2 store. To perform this task, using Command Prompt, navigate to the installation directory of Magento 2 and run the following Magento 2 CLI Command:
php bin/magento setup:static-content:deploy
If you get any error, check your PHP.EXE and PHP.INI Environment
Next, flush Magento cache by running
php bin/magento cache:flush in CMD.
And finally, to Reindex Magento Static Blocks run
php bin/magento indexer:reindex command.
You are done with successful migration of Magento 2 store. If you face any issue, do not hesitate to comment!