We have a local environment for development. We need to do a migration from local to a Dev server for integration. Is there any detailed migration guide about how to migrate Magento from one server to another? How to handle the database records and user generated content?
There is a quick reference:
Basically, we need to change the connection config in app/etc/env.php, the url config in
core_config_data and set the permission your source files.
--After importing the backup database, we need to change
web/secure/base_url paths in
core_config_data table. We can check:
SELECT * FROM core_config_data a WHERE a.`path` LIKE '%web/unsecure/base_url%' UNION SELECT * FROM core_config_data a WHERE a.`path` LIKE '%web/secure/base_url%'
Change theses values to your own url.
--Should change host, dbname, username, pwd app/etc/env.php:
array ( 'table_prefix' => '', 'connection' => array ( 'default' => array ( 'host' => 'localhost', 'dbname' => 'mage21', 'username' => 'root', 'password' => '', 'active' => '1', ), ), ),
--Change the permission and owner of files:
--May run static content deploy
php bin/magento setup:static-content:deploy
--Remember to clear Magento Cache and delete
There is a good doc here: http://devdocs.magento.com/guides/v2.0/config-guide/prod/prod_deploy.html
From the Magento 2.2 version, there are many improvements: http://devdocs.magento.com/guides/v2.2/config-guide/deployment/
First off all see that the database is exported to the new server.
Then transfer the magento root files to the new server.
In the root folder, change to the new database. You can do this by going to app/etc/env.php and changing the DB array information. change the host, dbname, username and password to the new one.
Then you change you secure and unsecure URLs in the magento DB core_config_data to the new IP, don't forget the "/" after your IP, it's required.
Make the web user owner of the new file ( for apache it's: sudo chown -R www-data /var/www/magentoroot ). Set the correct file and folder permissions.
Finally clear the cache by running bin/magento cache:clean and bin/magento cache:flush.
Think, too, of setting up on the target platform any cron jobs that you may have created on the source platform and installing any PHP extensions that you might have had to install, such as for memcached.
If you have set up the testing framework, then you shall need to edit:
Your sitemap/sitemap.xml will also be incorrect. I am not quite sure when/if a cron job may update it. Otherwise, update manually at Marketing -> SEO & Search -> Site Map
If you have enabled 2FA then you will need to make some changes. I didn't do this the right way, so I ended up disabled the 2FA module and then starting from scratch. But I suppose it might suffice to reset the authenticator:
php bin/magento msp:security:tfa:reset <username> <provider>