Transférer un site Joomla! vers un autre serveur

La procédure la plus simple et la plus sûre est d'utiliser Akeeba backup (voir sauvegarde et restauration). En cas d'impossibilité, il faut utiliser la méthode de sauvegarde décrite dans cet article.

Si vous n'utilisez pas Akeeba backup et que vous avez la copie de votre site sur votre serveur local, vous pouvez en exporter la base de données, comme décrit dans l'article cité, et compresser en zip le contenu du dossier du site. Vous pourrez envoyer alors avec votre client ftp (FileZilla, WinSCP ou autre) ce zip sur votre nouveau serveur distant, de manière plus sûre et plus rapide que si vous envoyiez les milliers de fichiers du site. Vous pourrez utiliser soit la possibilité de décompression sur le serveur distant que proposent certains hébergeurs, soit le fichier kickstart.php d'Akeeba, soit encore un script PHP de décompression qu'il faudra placer aussi par ftp, ainsi que MoovJla, à la racine du site.
Il vous faut ensuite importer la sauvegarde de votre base de données : ouvrez phpMyAdmin pour accéder à la base distante, sélectionnez le nom de la base dans la colonne de gauche puis cliquez sur le bouton "Importer" et recherchez la sauvegarde de la base sur votre ordinateur avant de lancer l'importantion. Au bout de quelques instants, un message signale la fin de l'exécution.
Maintenant, saisissez l'adresse de votre site suivie de "/MoovJla.php", puis changez les informations concernant la base de données pour celles du nouveau serveur et validez. Testez votre site et s'il fonctionne, supprimez le fichier MoovJla.php

Attention à deux points : le .htaccess de l'ancien site (s'il en utilisait un) peut perturber le nouveau, donc renommez-le sur le serveur distant et renommez ensuite le fichier htaccess.txt en .htaccess (n'oubliez pas le point en début de nom) ; ensuite si votre ancien site utilisait le forçage SSL, il vous faut le désactiver en modifiant avec un éditeur de texte simple (éventuellement celui intégré ou lié à votre client ftp) le champ "force_ssl" du fichier configuration.php afin de ne pas avoir un blocage. Vous réactiverez cette fonction si votre nouveau site vous donne droit à un certificat SSL.

La procédure avec Akeeba backup est décrite dans l'article sur la restauration, mais nous allons la résumer ici. Tout d'abord il faut une sauvegarde de votre site : pensez à désactiver temporairement le forçage SSL dans l'onglet serveur de la configuration, puis lancez votre sauvegarde. Si elle est accessible pat ftp ou http et que vous utilisez Akeeba backup pro, vous pourrez importer drectement depuis kickstart le fichier de sauvegarde, sinon, il vous faudra récupérer votre sauvegarde et la renvoyer avec kickstart sur le nouveau serveur distant et ouvrir l'adresse de votre site suivie de "kickstart.php". Lors de la procédure de réinstallation, saisissez les nouvelles informations concernant la base de données, assurez-vous que le forçage SSL est bien désactivé (au cas où vous l'auriez omis à la sauvegarde) et permettez le remplacement du .htaccess par sa version générique. Personnellement, je ne fais que saisir les informations de la nouvelle base et je m'assure que le forçage du "https" est bien désactivé, je laisse les autres paramètres à leur valeur par défaut, la mise au point définitive se fera plus tard.

Attention à un autre point : si vous utilisez JCH Optimize, pensez à le désactiver avant sauvegarde ou juste après la restauration, car d'une part il peut avoir conservé des fichiers en cache dans son propre dossier, d'autre part ses réglages peuvent être différents sur le nouveau serveur.