If you would like to migrate Prestashop 1.7 to a new server then you are in the right place. This is a complete step by step guide on migrating PrestaShop to a new host. Whilst most guides online assume you have experience moving a PrestaShop site, this guide will list every step in detail so even a PrestaShop 'newbie' can move from their current host to a new one.
Ok, let's begin.
Before you do anything, the first step is to back up your PrestaShop website. Often hosting companies will provide a 1 click backup feature and whilst these are great, this guide will use the 'old fashioned' tried and tested methods using FTP and PhpMyAdmin (don't worry if you don't know what these are). The reason for this is virtually every host offers FTP and PhpMyAdmin access and it's very unlikely that anything could go wrong using this method.
Backing up your PrestaShop files
To back up your PrestaShop files / folders, you will require a FTP client. There are many FTP clients available online but in this guide we will be using FileZilla as it's free and opensource.
You can download FileZilla free from https://filezilla-project.org
Whilst you are intalling FileZilla, contact your current host and ask them for the following information:
1. Your FTP host
2. Your FTP username
3. Your FTP password
4. Your FTP port (this is usually 21).
Before continuing with this guide, create a new folder on your computer called 'old-host' and remember where it is. This is where you will be downloading the PrestaShop back up to.
Once you have installed FileZilla open it up and enter your FTP login information in the boxes at the top, then click the Quickconnect button.
Once connected you should see a public folder on the right pane (under the remote site section). This will often be called public_html or htdocs. Open this folder.
Once opened, you should see your PrestaShop install. You can tell if you are in the right location by the files that are displayed. You should see folders called 'admin', 'app', 'bin' (plus many others) and files such as 'images.inc.php' and 'init.php'.
TIP : If you have your prestashop in a sub folder e.g. yourdomain.co.uk/shop, then you will need to open the 'shop' folder to load your prestashop site. When restoring the site in the second half of this guide, you will also need to re-create the 'shop' folder and restore the site into it.
In the left hand menu (local site), locate and open the 'old-host' folder that you made earlier.
Next, select all your PrestaShop 1.7 files / folders in the right hand pane to turn them blue then right click on them and select 'download'.
You should now see the PrestaShop files / folders being downloaded at the bottom in the transfers box.
Once complete, you can close FileZilla.
TIP : If any files fail, they will show up in the failed transfers tab at the bottom. You can then simply re-add these to download again.
Backing up your PrestaShop database
To back up the database you will need to gain access to PhpMyAdmin. Virtually all hosts provide this access and usually it can be found in your hosting control panel. However, if you can't find it, ask your current host how to access it.
Once you have PhpMyAdmin open, you may need to click your database from the left (if it doesn't open automatically).
You should now see a list of tables with names such as 'X_access', 'X_accessory' and 'X_address' (the X will vary and depends on how PrestaShop was installed.
Click the 'Export' tab at the top of PhpMyAdmin.
You should now see the export database page. Scroll down and click the 'go' button then save the file it gives you to your computer.
You now have a back up of your PrestaShop database. If your database is large, you may wish to download it again in a zipped format (this will be quicker to import later). To do this, click the 'custom' button, next to 'Compression', select 'zipped' from the dropdown then click 'Go'.
Restoring your PrestaShop database on the new host.
Now that you have a backup of your database, you can start the process of restoring your PrestaShop 1.7 site on your new host. The first step is to restore the database. In order to do this you will need to set up a new database with your new host. Usually this can be done via the hosting control panel but if you have any issues, contact your host who should be able to help.
You will need to collect the following details from your new host.
1. The database host (usually localhost)
2. The database username
3. The database password.
4. The database name.
Once you have these, open your new database in PhpMyAdmin (again your host will be able to help you if you can not locate PhpMyAdmin with them) and if it has not already logged you into your new database, select it from the menu on the left.
Next, click the 'Import' button at the top.
Click the 'Choose File' button and select the database back up you downloaded earlier.
Then click the 'Go' button at the bottom to start the PrestaShop database import.
Once complete, you should see a message displayed saying "Import has been successfully finished" in a green box.
That's it, you can now close PhpMyAdmin as your PrestaShop database has been restored.
Updating your Prestashop /app/config/parameters.php file
Now that you have restored your database, you will need to update your PrestaShop parameters.php file. This file tells PrestaShop the important database connection details. In your backup folder ('old host') you should see a folder called 'app'. Open this folder.
Now open the 'config' folder.
You should now see a file called 'parameters'. You will need to open this file with a plain text editor such as Notepad or notepad++.
Warning : Do not open it with a rich text editor such as WordPad or Microsoft Word as this will corrupt the file.
You now need to replace some text in this file with your new database details.
Locate the line:
'database_host' => 'CCCCCC',
(yours will have something other than CCCCCC) and update the CCCCCC to match your database host (usually 'localhost').
Locate the line:
'database_name' => 'DDDDDD',
(yours will have something other than DDDDDD) and update the DDDDDD to match your database name.
Locate the line:
'database_user' => 'EEEEEE',
(yours will have something other than EEEEEE) and update the EEEEEE to match your database username.
Locate the line:
'database_password' => 'FFFFFF',
(yours will have something other than FFFFFF) and update the FFFFFF to match your database password.
Once you have made the above changes, save the file and close it.
Uploading your PrestaShop backup (files/folders) to the new host.
As you now have a restored database and an updated parameters.php file, you can move onto the stage of uploading the PrestaShop files/folders to the new host.
You will need the following details from your new host.
1. FTP host
2. FTP username
3. FTP password
4. FTP port (usually 21).
Usually these can be found in your new host's control panel (and often in your new host's welcome e-mail). However, if you are unable to find them, ask your new host who will be able to provide these for you.
Open up FileZilla again and enter your new host's FTP details in the top, then click 'Quickconnect'.
Once connected, open your new host's public folder (usually called public_html or htdocs).
In the left hand pane, open your backup folder (old host).
Select all of your PrestaShop 1.7 files/folders then right click and select 'Upload' (or drag them over into the public folder).
You should now see the backup of your PrestaShop files being uploaded to the server.
Once all the files/folders have uploaded, you have fully restored your PrestaShop 1.7 site.
Tip : You can use the 'failed transfers' tab at the bottom to view any files that have not uploaded correctly.
Pointing your domain to the new hosting
At this point you should have a fully restored backup of your PrestaShop 1.7 site on your new hosting. All that is left is for you to tell the domain to look to the new hosting instead of the old one. To do this you will need to update either your domain's nameservers to your new host or the domain's DNS. Your new host will be able to provide these details and the company you purchased the domain name from will be able to set them up for you (you can often do this yourself via the domain control panel).
Due to the thousands of companies online who offer domain registration, it is not possible for us to show this step but if you google search for "your registrar+change nameservers" it will likely bring up your registrar's own guide on how to do this yourself.
Once you (or your registrar) has made the above change, it will take up to 24 hours for it to become active. Once it does, you should now see your restored prestashop site!
The first thing you should do if you get any error messages is to check if the app/config/parameters.php file has the correct database details.
Prestashop Admin white / blank page
If you have a blank page in your admin, using a FTP program, try renaming the public_html/var/cache/prod and public_html/var/cache/dev folders to public_html/var/cache/prod_OFFLINE and public_html/var/cache/dev_OFFLINE
PrestaShop Admin loads in debug mode but not in normal mode
This can be resolved using the same method as above (renaming the dev and prod folders).
Catalog Blank / White Page
This can occur in PrestaShop due to a variety of reasons but there will usually be an error in your host's logs (your host should be able to help you with this). Often this is a simple fix (e.g. changing the php version to match what your old host was using or increasing the host's 'memory_limit' setting).
Catalog looks strange / doesn't look correct
This can often be due to an old cache that is not loading correctly. Load up your PrestaShop admin area and go to Advanced Parameters > Performance, then click the "clear cache" button in the top right. Also, make sure to clear your own browser's cache (see https://www.refreshyourcache.com/en/home/ for details).
If this guide has helped you or if you feel it could be improved, please let us know in the comments below.