A Comprehensive Guide to Migrating Your Magento 2 eCommerce Site to a New VPS Server

Detailed illustration showcasing the process of Magento 2 site migration to a new VPS server, a step-by-step tutorial for a seamless transition.

Migrating your Magento 2 eCommerce site can be a daunting task, especially if you're unfamiliar with VPS server administration. But don't fret. We've compiled an in-depth tutorial on how to migrate your Magento 2 eCommerce site from one VPS server to another, ensuring a smooth transition. This Magento 2 VPS Migration Tutorial covers everything from setting up your new hosting environment to transferring your Magento files and database. Read on and embark on your journey towards a successful Magento Migration to a new server.

Step 1: Essential Pre-requisites Before Magento 2 VPS Migration

Before you begin the Magento 2 VPS Migration process, it's crucial to create complete backups of your site files and databases. This backup will act as your failsafe if the migration doesn't go as planned. This guide is designed for users whose existing and new server setups run on Ubuntu, with NGINX and MySQL.

Step 2: Laying the Foundation for Magento 2 Migration: Installation Commands

The first step in migrating your Magento 2 eCommerce site to a new VPS server is to install essential software on your new server. Here, we guide you through the installation process for NGINX, PHP, MySQL, Elasticsearch, and Certbot, step-by-step.

Kick-starting our Magento 2 Migration guide, we begin by adding the necessary repositories and updating our server:

add-apt-repository ppa:ondrej/php
apt update && sudo apt upgrade -y

Step 2.1: Install NGINX

To install NGINX, which will power your new server, execute the following commands:

apt install nginx
systemctl start nginx
systemctl enable nginx
nginx -v

Step 2.2: Install PHP

Next in line to move Magento to new server is to install PHP, in this case, version 7.4, which aligns with older Magento 2 versions:

apt-get install php7.4 php7.4-dev php7.4-fpm php7.4-bcmath php7.4-intl php7.4-soap php7.4-zip php7.4-curl php7.4-mbstring php7.4-mysql php7.4-gd php7.4-xml
systemctl start php7.4-fpm
systemctl enable php7.4-fpm
php -v

Step 2.3: Install MySQL

In our move to install the new server, we now install MySQL using the following commands:

apt install mysql-server
systemctl start mysql
systemctl enable mysql
mysql --version

Step 2.4: Install Elasticsearch 7

With Magento's catalog search relying on Elasticsearch, we'll install version 7 to continue with our Magento 2 Migration process:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
apt update && apt install elasticsearch=7.17.11
systemctl start elasticsearch
systemctl enable elasticsearch
curl -X GET "localhost:9200"

Step 2.5: Install Certbot

To handle SSL certificates, we need Certbot, so we'll install it:

apt-get -y install certbot
apt-get install letsencrypt-nginx
apt-get install certbot-nginx
apt-get install python3-certbot-nginx
certbot --version

Step 3: Transferring Magento Files to Your New VPS Server

Having installed all the necessary software, it's now time to transfer your Magento files and NGINX configuration files to the new server, a critical part of the Magento 2 site migration process. To achieve this, we'll use the rsync command.

rsync --rsh='ssh -p22' -avzh /var/www/mysite.com [email protected]:/var/www/
rsync --rsh='ssh -p22' -avzh /etc/nginx/sites-available/* [email protected]:/etc/nginx/sites-available/

Step 4: Suspending Activities on the Old Server: Preparing for Magento 2 Migration

For a seamless Magento 2 VPS migration, it's important to halt any ongoing transactions on your old server. Here's how we can stop the cron jobs and the NGINX service on the old server.

service cron stop
service nginx stop

Step 5: Backing Up the Magento Database: Essential for Magento 2 Migration

With the old server's activities on hold, we can safely backup the Magento database. The `mysqldump` command will help us accomplish this, an essential part of the Magento 2 Migration:

mysqldump -u root -p mysite_db > mysite_db.sql

Step 6: Transferring the Database Backup to the New Server: Progressing in Magento 2 Migration

Next, we'll transfer the database backup to the new server using the rsync command, inching closer to a successful Magento 2 Migration.

rsync --rsh='ssh -p22' -avzh /root/mysite_db.sql [email protected]:/root/

Step 7: Importing the Database on the New Server: A Major Milestone in Magento 2 Migration

We're now prepared to import the Magento database into MySQL on the new server. Here's how to accomplish this major milestone in the Magento 2 Migration process.

mysql -u root -p mysite_db < /root/mysite_db.sql

At this stage, create a new MySQL user and grant them the necessary privileges to the database. For simplicity, you can use the same user/password as on the old server:

  1. Access MySQL Shell: First, you need to log into the MySQL shell. Use the following command to do so:
  2. mysql -u root -p

    You will be asked for the root password. Once you enter it, you will get access to the MySQL shell.

  3. Create a New User: Now, let's create a new user. Replace "newuser" and "password" with your desired username and password.
  4. CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  5. Grant All Privileges: The next step is to give this new user access to the `mysite_db` database. To do so, use the following command:
  6. GRANT ALL PRIVILEGES ON mysite_db.* TO 'newuser'@'localhost';

    This command grants the user all permissions. If you want to grant specific permissions like SELECT, INSERT, DELETE, UPDATE, you can do so by mentioning them instead of ALL.

  7. Flush Privileges: Whenever you make changes to the user privileges, you need to reload all the privileges using the `FLUSH PRIVILEGES` command to ensure that the current instance of MySQL uses the latest privileges.
  9. Exit MySQL Shell: Once all commands are executed successfully, you can exit the MySQL shell using the `exit` command:
  10. exit

Make sure to test this new user's connection to the database to confirm everything is working as expected.

Step 8: Pointing Your Domain to the New Server: Finalizing Magento 2 Migration

With the database set up on your new server, you can now update your domain's DNS record to point to the new server. This step completes the primary Magento 2 Migration process.

Step 9: Generating a New SSL Certificate on the New Server: Securing Your Magento 2 Site

As the DNS changes take effect, we'll create a new SSL certificate on our new server using Certbot. This step ensures that your migrated Magento 2 eCommerce site remains secure.

certbot --nginx certonly -n --agree-tos --email [email protected] -d mysite.com

Step 10: Launching Your Magento 2 Site on the New VPS Server

Finally, we'll enable our site configuration and restart NGINX to successfully launch your Magento 2 eCommerce site on the new VPS server.

ln -s /etc/nginx/sites-available/mysite.com.config /etc/nginx/sites-enabled/
systemctl restart nginx

And there you have it! Your Magento 2 site should now be successfully migrated to the new VPS server. We hope this Magento 2 Migration Tutorial made the process easier and more manageable for you. Happy hosting!

Successful completion of a Magento 2 site migration to a new VPS server, representing the final step in our comprehensive Magento 2 migration guide.

FAQ: Addressing Your Magento 2 Migration Concerns

What Should I Do Before Migrating My Magento 2 eCommerce Site to a New Server?

It's vital to create a complete backup of your site files and databases before starting your Magento 2 Migration to a new VPS server. It's also prudent to schedule your migration during periods of least traffic to minimize impact on your eCommerce business.

How Long Does the Magento 2 VPS Migration Process Take?

The duration of a Magento 2 VPS Migration depends on the size of your eCommerce site and the speed of your servers. Plan your migration keeping in mind DNS propagation times as well.

Can I Migrate My Magento 2 Site Without Downtime?

Downtime during the Magento 2 VPS Migration process can be minimized with proper planning and by meticulously following the Magento migration tutorial.

Understanding and Conquering Magento 2 VPS Migration Challenges

Migrating your Magento 2 eCommerce site to a new VPS server can pose challenges, especially if you're new to server management or Magento's architecture. Here, we discuss potential difficulties and offer solutions to conquer these Magento 2 Migration challenges.


Magento is a powerful and flexible eCommerce platform, but this also makes it complex. Migration involves not just transferring the Magento files but also the connected database and any extensions or customizations you've added to your site.

Potential for Downtime

As we mentioned earlier, the Magento 2 migration process can lead to downtime if not managed properly. Minimizing downtime requires careful planning and attention to detail.

Data Loss

During a Magento migration to a new server, there's always a risk of data loss if backups are not correctly created or if any step of the migration process goes awry.


Security is a prime concern during migration. You must ensure that data is securely transferred to prevent any breaches.

Conquering Magento 2 Migration Challenges

Leverage Expertise

If you're not confident about the migration, it's advisable to hire a Magento 2 expert or a reliable hosting provider that offers migration services.

Perform Thorough Testing

Post-migration, make sure to thoroughly test your website. Check whether all your data, including products, customer information, orders, and other essential components, are correctly reflected on the new server.

Maintenance Mode

It's recommended to put your Magento 2 store in maintenance mode during the migration process to prevent any transactions from happening while the process is ongoing.

Optimize Your New Server

Once your site is up and running on the new server, take the opportunity to optimize your website. Check your site speed, implement caching, and consider integrating a CDN to enhance performance.

In conclusion, migrating your Magento 2 eCommerce site to a new VPS server involves numerous steps and potential challenges. However, by following this comprehensive Magento 2 VPS Migration tutorial, understanding the hurdles, and taking risk-mitigating measures, you can successfully transition your Magento site to a new server. Remember, a well-executed Magento migration can breathe new life into your online store, potentially boosting its performance and enhancing customer experience.