CMS backup and restoring

De Cacauet Wiki
Salta a la navegació Salta a la cerca

To backup and restore a CMS we have to follow the following procedure:

  1. Export database and filesystem of the original CMS.
  2. Import files and database in the new system.
  3. Adjust the config files of the CMS to make it work.


Backup (export) existing CMS

To export your original CMS you need to:

  1. Backup files in the source CMS (with tar, zip, etc.).
    Our suggestion is to use the command:
    $ tar cvfz cmsfoldername.tar.gz <cms_folder_name>
    (obviously changing <cms_folder_name> for your CMS folder name).
  2. Export database with mysqldump (in a *.sql file). We can use:
    • Command mysqldump. With:
      $ mysqldump -u <username> -p cmsdbname > cmsdb.sql
      We will create the file cmsdb.sql with all CMS DB data. Obsioulsy you have to change <username> for your user name.
    • phpmyadmin: too easy to give explanations for that.

That should result in having 2 files, (1) *.tar.gz and (2) *.sql.


Restore (import) the backuped CMS

To import the backuped CMS in the new system you need to: We need 2 files: the tarball and the sql for database.

  1. Copy the files (*.sql and *.tar.gz) to your target system.
  2. Extract files in the target system.
    • Using the tar command is (you need SSH access to your system)
      $ tar xvfz cmsfoldername.tar.gz
    • If your system doesn't have SSH you can uncompress the files in your local machine and upload it using FTP.
  3. Change the folder name if you need it.
    $ mv <cmsfoldername> <newfoldername>
  4. Create the database in the target system.
    • Using mysqladmin command:
      $ mysqladmin -u <username> -p create <username>_newdb
      (Obviously changing <username> for your user name and newdb for something related to your CMS as "wp1" or "wiki2").
    • Using mysql command:
      $ mysql -u <username> -p
    mysql> create database <username>_newdb;
    • Using phpmyadmin
  5. Import the SQL file in the new database.
    • Using mysql command:
      $ mysql -u <username> -p <username>_newdb < cmsdb.sql
    • Using phpmyadmin

Adjusting config files of the new CMS

Each CMS needs to change different things. You have to look for the config file, depending on your CMS, for example:

  • Wordpress: wp-config.php
  • Mediawiki: LocalSettings.php
  • Joomla!: configuration.php


You have to review this settings to make the CMS work again:

  • DB name
  • DB user
  • DB password
  • root folder of the installation


In Wordpress you also have to change the SITE DIRECTORY that is not in the wp-config.php file but in the DATABASE. If you don't change it, the images will not appear and some functionalities may not work.

The easy way as indicated here:

  • Go to admin -> Settings -> General
  • Change Wordpress Address (URI) and Site Address (URL)
  • Save changes and go!

The taugh way (may be not enough, that's only for the URI):

  • Go to PHPMYADMIN and select the WP database
  • Go to the table WP_OPTIONS
  • Search "siteurl" in the option_name column.
  • Edit (pen icon) this row and change "option_value" column to your new site name.

More

To know more you can read that articles for database creation, export and import:

You can use several commands to synchronize your data in a remote server with your local filesystem:

  • rsync is the most common used, but you need SSH access to your site.
  • Some hostings just provide FTP service, so you can read this article for other ways to syncronize over FTP. Particularly you can use this ones:
    • mirror
    • wget: can work over FTP as well as HTTP
    • sitecopy
    • lftp (seems more complex needing a script)