Dupliquer une installation

Introduction

Pourquoi dupliquer une installation Elgg ?

Il existe beaucoup de raisons pour lesquelles vous pouvez vouloir dupliquer une installation Elgg : déplacer le site vers un autre serveur, créer un serveur de test ou de développement, et créer des backups fonctionnels sont les plus habituelles. Pour créer un double fonctionnel d’un site Elgg, 3 choses doivent être copiées :

  • Base de données

  • Données du répertoire des données

  • Code

Il faut modifier au moins 5 éléments d’information pour une installation copiée :

  • le fichier elgg-config/settings.php qui peut aussi se trouver à l’emplacement engine/settings.php pour les versions pré-2.0

  • le fichier .htaccess (Apache) ou la configuration de Nginx en fonction du serveur utilisé

  • l’entrée de la base de donnée pour l’entité de votre site

  • l’entrée de la base de donnée pour le chemin d’installation

  • l’entrée de la base de donnée pour le chemin du répertoire des données

Ce qui n’est pas traité dans ce tutoriel

This tutorial expects a basic knowledge of Apache, MariaDB, and Linux commands. As such, a few things will not be covered in this tutorial. These include:

  • How to backup and restore MariaDB databases

  • Comment configurer Apache pour fonctionner avec Elgg

  • Comment transférer des fichiers vers et depuis votre serveur de production

Avant de commencer

Avant de commencer, assurez-vous que votre installation Elgg est pleinement fonctionnelle. Vous aurez aussi besoin des éléments suivants :

  • Un backup de la base de données de votre site Elgg actif

  • Un emplacement pour copier la base de données active

  • Un serveur qui convienne pour installer le site Elgg dupliqué

    (Qui peut être le même serveur que celui de votre installation Elgg en production)

Backups of the database can be obtained various ways, including phpMyAdmin, the MariaDB GUI, and the command line. Talk to your host for information on how to backup and restore databases or use Google to find information on this.

Au cours de ce tutoriel, nous allons faire les hypothèses suivantes à propos du site Elgg en production :

  • L’URL est http://www.myelgg.org/

  • Le chemin d’installation est /var/www/elgg/

  • Le chemin du répertoire des données est /var/data/elgg/

  • L’hôte de la base de données est localhost

  • Le nom de la base de données est production_elgg

  • L’utilisateur de la base de données est db_user

  • Le mot de passe de la base de données est db_password

  • Le préfixe des tables de la base de données est elgg

A la fin du tutoriel, les renseignements de notre installation Elgg de test seront :

  • L’URL est http://test.myelgg.org/

  • Le chemin d’installation est /var/www/elgg_test/

  • Le répertoire des données est /var/data/elgg_test/

  • L’hôte de la base de données est localhost

  • Le nom de la base de données est test_elgg

  • L’utilisateur de la base de données est db_user

  • Le mot de passe de la base de données est db_password

  • Le préfixe des tables de la base de données est elgg

Copiez le code de Elgg vers le serveur de test

La toute première étape est de dupliquer le code du site Elgg de production. Dans notre exemple, c’est aussi simple que de copier /var/www/elgg/ vers /var/www/elgg_test/.

cp -a /var/www/elgg/ /var/www/elgg_test/

Copiez les données de Elgg vers le serveur de test

Dans cet exemple, c’est aussi simple que copier /var/data/elgg/ vers /var/data/elgg_test/.

cp -a /var/data/elgg/ /var/data/elgg_test/

Si vous n’avez pas d’accès console - shell - à votre serveur et devez transférer les données par FTP, vous pouvez avoir besoin de modifier le propriétaire et les permissions des fichiers.

Note

Vous devez aussi supprimer les dossiers de cache du disque. Ceux-ci correspondent aux dossiers cacheroot et assetroot dans votre configuration.

Editez settings.php

Le fichier elgg-config/settings.php contient les renseignement de configuration de la base de données. Ceux-ci doivent être ajustés pour votre nouvelle installation Elgg de test. Dans notre exemple, nous allons regarder dans /var/www/elgg_test/elgg-config/settings.php et trouver les lignes qui ressemblent à ceci :

// Database username
$CONFIG->dbuser = 'db_user';

// Database password
$CONFIG->dbpass = 'db_password';

// Database name
$CONFIG->dbname = 'elgg_production';

// Database server
// (For most configurations, you can leave this as 'localhost')
$CONFIG->dbhost = 'localhost';
// (For most configurations, you can leave this as 3306)
$CONFIG->dbport = 3306;

// Database table prefix
// If you're sharing a database with other applications, you will want to use this
// to differentiate Elgg's tables.
$CONFIG->dbprefix = 'elgg';

Nous devons modifier ces lignes pour qu’elles correspondent à notre nouvelle installation :

// Database username
$CONFIG->dbuser = 'db_user';

// Database password
$CONFIG->dbpass = 'db_password';

// Database name
$CONFIG->dbname = 'elgg_test';

// Database server
// (For most configurations, you can leave this as 'localhost')
$CONFIG->dbhost = 'localhost';
// (For most configurations, you can leave this as 3306)
$CONFIG->dbport = 3306;

// Database table prefix
// If you're sharing a database with other applications, you will want to use this
// to differentiate Elgg's tables.
$CONFIG->dbprefix = 'elgg';

$CONFIG->wwwroot = 'http://your.website.com/'

Note

Notez que $CONFIG->dbname a changé pour correspondre à notre nouvelle base de données.

Copier la base de données de Elgg

Now the database must be copied from elgg_production to elgg_test. See your favorite MariaDB manager’s documentation for how to make a duplicate database. You will generally export the current database tables to a file, create the new database, and then import the tables that you previously exported.

Vous avez deux possibilités pour mettre à jour les valeurs dans la base de données. Vous pourriez changer les valeurs dans le fichier exporté, ou vous pourriez modifier ces valeurs par des requêtes sur la base de données. Un avantage de modifier directement le fichier exporté est que vous pouvez aussi modifier les liens que les utilisateurs ont créé vers du contenu au sein de votre site. Par exemple, si des personnes ont mis en marque-page des pages avec le plugin bookmarks, les marque-pages vont pointer vers l’ancien site tant que vous n’aurez pas mis à jour leurs URLs.

Entrées de la base de données

Nous devons maintenant modifier 4 entrées dans la base de données. Ceci peut être fait aisément en exécutant 4 commandes SQL simples :

Vérifiez le fichier .htaccess

If you have made changes to .htaccess that modify any paths, make sure you update them in the test installation.

Mettez à jour la configuration du serveur web

Pour cet exemple, vous devez modifier la config Apache pour activer un sous-domaine avec pour racine des documents - document root /var/www/elgg_test/. Si vous prévoyez d’installer dans un sous-répertoire de votre racine des documents, cette étape n’est pas nécessaire.

Si vous utilisez Nginx, vous aurez besoin de mettre à jour la configuration du serveur pour correspondre aux nouveaux chemins basés sur install/config/nginx.dist.

Exécutez upgrade.php

Pour régénérer les données mises en cache, assurez-vous d’exécuter http://test.myelgg.org/upgrade.php

Astuces

It is a good idea to keep a test server around to experiment with installing new mods and doing development work.