Magento – How to configure an existing Magento 2.1.7 project in another PC and Database

magento-2.1magento-2.1.7magento2

I am new to Magento.
I have a working Magento 2.1.7 project and want to put it in a git repository.

If I put the working Magento directory into git and clone the repository to a local machine how do I install the existing project and do the database configuration?

I tried copy pasting the existing repository to another machine and tried to install it by following the normal procedure but it didn't work, instead I got this error:

An error has happened during application run. See exception log for details. 

I also tried to import the database as well but I got this error while importing:

Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in <b>Unknown</b> on line <b>0</b><br /> SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO" 

I extended the max_input_vars to 10000 in the php.ini file but still, I get the same error.

Please suggest me about how can I configure and install an existing Magento 2.1.7 project ** because I want to put the working project to GIT for my team to work with !**.

Best Answer

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:

http://devdocs.magento.com/guides/v2.0/install-gde/trouble/php/tshoot_php-set.html

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:

http://devdocs.magento.com/guides/v2.0/install-gde/system-requirements-tech.html

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 .sql file.

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:

 ‘db’ =>

 array (

   ‘table_prefix’ => ”,

   ‘connection’ =>

   array (

     ‘default’ =>

     array (

       ‘host’ => ‘DATABASE_HOST’,

       ‘dbname’ => ‘DATABASE_NAME’,

       ‘username’ => ‘DATABASE_USERNAME’,

       ‘password’ => ‘DATABASE_PASSWORD’,

       ‘active’ => ‘1’,

     ),

   ),

 ),

Where:

‘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 web/unsecure/base_url and web/secure/base_url in 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 Variable

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!

Related Topic