This guide will take you through all the steps required to migrate a Concrete5 8+ website to a new server/hosting company. It has been written so that anyone can follow it (no matter what your technical experience). However, due to this it is quite long (since it lists virtually every step on migrating Concrete5 version 8+ with images) but if you are familiar with web hosting then you will likely be able to skip a lot of the details.
Please note, this guide assumes your Concrete5 version 8 website is running off the domain (e.g. yourdomain.co.uk, which is the most popular setup) and not a sub domain (e.g. anything.yourdomain.co.uk). If you are running off a sub domain, you can still follow this guide but you will need to make sure you set up the sub domain on the new hosting first and upload the files into the required structure.
Ok, so let's gets started
Turn off caching and clear cache.
Concrete5 caches sections of your website to help speed up the load time for the user. However, when moving to a new host, these files are not required and can cause issues if they are copied over.
Open your Concrete5 admin and click the dashboard icon in the top left to reveal your dashboard menu.
In the popout menu, click the "system & settings" link.
This should now bring up your system and settings page. Under "Optimisation", click the "Cache & Speed Settings" link.
Then click the "Save" button.
Now you need to clear the current Concrete 5 cache. To do this, click the dashboard icon again.
Then click the click the "System & Settings" link.
Under "Optimisation" you should see a "Clear Cache" link. Click this to load the Clear Cache page.
Next tick the "clear cached thumbnails" box and then click the "Clear Cache" button.
Back up your Concrete5 version 8.x files/folders
Now that the cache is clear, the next step is to take a full back up of your website. In this guide we will show you how to do this using FTP. Whilst many hosting companies do offer a 1 click backup solution, virtually every hosting company offers FTP.
Before you proceed, create a new folder on your computer so that you have somewhere to store the backup. In this guide, we will call this folder "Concrete5 version 8 backup" but you can call it anything you like.
To use FTP you will need a FTP client. There are many FTP clients online (some free, some require payment) but a good popular free client is FileZilla. This can be downloaded from Filezilla-project.org
As this is one of the most popular free FTP clients, it is the one we will use in this guide.
Once you have downloaded FileZilla, you will need your current host's FTP login details. These include:
1) FTP host
2) FTP username
3) FTP password
4) FTP port (usually 21)
These can usually be found in your hosting control panel but if not, copy and paste the below into an e-mail to your current host.
Hello, can you please confirm my FTP login details including the FTP host, username, password and port?
Once you have these details, open up your FTP client and enter the connection details in the box at the top. Then click Quickconnect.
Once connected, find your "Concrete5 version 8 backup" folder on your computer using the left pane and open it.
Next on the right hand pane, locate your public folder. This is usually called htdocs or public_html. If you do not see either of these, contact your host and ask them what the name of your public folder is.
Once you have located the folder, open it up.
Once opened, you should see your concrete 5 version 8 files and folders. If you are in the correct location, you should see folders such as "application", "concrete" and files such as "index.php" and composer.json".
Select all of the files and folders then right click on them and select "download".
You should now see the files and folders downloading at the bottom.
Leave your FTP client to complete the downloads and make sure all the files have been downloaded correctly. If any files have been missed or failed, they will show up in the "failed transfers" tab. If they do, re-set them to download again and process the queue.
Back up your Concrete5 version 8.x database
Now that you have a back up of your Concrete5 website files/folders, you will need to take a backup of the database (this is where all your page text plus various other vital information is stored). To back up the database, you can use PhpMyAdmin. This is a web based admin for managing MySQL databases. Virtually all hosts offer PhpMyAdmin (which is why we will use it in this guide). Usually this can be found in your hosting control panel (under a databases section) but if not, ask your host how to access it.
Once you have located PhpMyAdmin, open it up and if your Concrete5 database is not already selected, click it from the menu on the left.
Tip : If you do not know the name of your Concrete5 database, open up the file "application\config\database.php" in your "Concrete5 version 8 backup" folder and look at the line "'database' => 'YYY',". The YYY will be the name of your database.
Once your database is loaded, click the "Export" tab at the top of the screen.
Then click the "Go" button and save the file to your computer.
Tip : We would also suggest exporting a compressed version of your database. This is usually quicker to restore later on and may be required if your database is large. To do this, click the "Custom - display all possible options" radio button, next to "Compression" select "zipped" from the dropdown. Then click the "go" button.
Restore your database on your new host
Now that you have a backup of your Concrete5 files/folders and database, the next step is to start restoring them on to your new hosting.
On your new host, create a new MySQL database. If you are unsure how to setup a database, contact your new host (or check out our additional non CMS related guides for steps on doing this with the most popular control panels).
When you create a new database, make a note of the following:
1) The MySQL database host (usually localhost).
2) The MySQL database name.
3) The MySQL database username.
4) The MySQL database password.
Once you have set up a new database, open this up in PhpMyAdmin. If the database is not already opened by default, select it from the menu on the left.
Click the "import" tab at the top.
Under the "File to Import" section, click the "Choose File" button and select the MySQL database back up you made earlier.
Then click the 'Go' button.
Once complete, you should see a green message appear stating "Import has been successfully finished.."
Edit application\config\database.php in your back up.
Before you can upload the Concrete5 files/folders from your "Concrete5 version 8 backup" folder, you will need to edit the database.php file. This file contains the MySQL database connection information required for Concrete5 to communicate with your new database. At the moment, this will still have your old database connection details and as such if you uploaded it now, it would still try to communicate with your old hosting.
To correct this, open your "Concrete5 version 8 backup" folder and then open the "application" folder.
Then open the "config" folder.
You should now see a file called "database" (the ".php" extension may be hidden on a Windows system). Open this file using 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 will now need to replace some text in this file with your new database details.
Locate the line:
'server' => 'AAAAAA',
(yours will have something other than AAAAAA) and update the AAAAAA to match your database host (usually 'localhost').
Locate the line:
'database' => 'BBBBBB',
(yours will have something other than BBBBBB) and update the BBBBBB to match your database name.
Locate the line:
'username' => 'CCCCCC',
(yours will have something other than CCCCCC) and update the CCCCCC to match your database username.
Finally, locate the line:
'password' => 'DDDDDD',
(yours will have something other than DDDDDD) and update the DDDDDD to match your database username.
Then save the file.
Upload your Concrete5 backed up files/folders
Now that you have a restored database and a correct application\config\database.php file, you can upload your backed up concrete5 files/folders to your new hosting.
Again, in this guide we will explain how to do this using FTP.
Contact your new host and ask them for the FTP connection details. These include:
1) FTP host
2) FTP username
3) FTP password
4) FTP Port (usually 21).
Usually the FTP details can be found in your hosting welcome e-mail or your hosting control panel.
Once you have these, open up FileZilla and enter your connection details into the boxes at the top, then click "Quickconnect".
Once connected, open up your "Concrete5 version 8 backup" folder in the left pane.
Then open your hosting's public folder on the right. This is usually called htdocs or public_html.
Select all the files in the "Concrete5 version 8 backup" folder, right click on them and click "upload".
You should now see your Concrete5 files and folders being uploaded at the bottom.
Once all the files have been uploaded (make sure to check the "failed transfers tab"), you can close FileZilla.
That's it, all that's left is for you to update the nameservers on the domain with your registrar to point to your new hosting. This step can vary depending on the registrar you use but in brief you do the following:
1) Contact your new host and ask them for their nameservers.
2) Contact your registrar (The company you purchased/renew the domain with) and ask them to update the nameservers on your domain to the ones your new host provided.
If this guide has helped you or if you feel it could be improved, please let us know in the comments below.