Migrer un Wordpress vers YunoHost


#1

Configuration de mon YunoHost

Matériel: x64 vps
Accès Internet : dans un datacenter
YunoHost version:
yunohost : 3.2.1
yunohost-admin : 3.2.1 (stable)
moulinette : 3.2.0 (stable)
ssowat : 3.2.0 (stable)
As tu modifié ton yunohost avec des configuration spécifiques ou bien utilise tu uniquement la web administration et/ou la ligne de commande yunohost ? basique

Description de mon problème

Bonjour,

J’ai actuellement un wordpress sur un hébergement mutualisé, que je souhaite rapatrier dans YunoHost. J’en profite au passage pour changer de nom de domaine (déjà acheté et “ajouté” dans YunoHost).

Pour le moment j’ai exporté la base de données et récupéré tous les fichiers du wordpress via FTP.
J’ai déjà corrigé la base de donnée pour remplacer l’adresse du site et les appels de liens (requête SQL pour remplacer “ancien domaine” par “nouveau domaine”).

Je me questionne sur la bonne marche à suivre ensuite.

Dans YunoHost, je pensais ajouter une nouvelle application Wordpress puis remplacer le contenu de la base de données MySQL créée lors de l’installation par mon export SQL (j’ai installé l’application PhpMyAdmin dans YunoHost)

J’hésite au niveau du remplacement des fichiers :

  • Remplacer l’intégralité des fichiers WordPress créés lors de l’installation de l’application par ceux exportés depuis mon ancienne installation ?
  • Ou seulement wp-content ?
  • Ou seulement le dossier uploads de wp-content ?

Et dois-je modifier les accès (autorisations) des fichiers après copie ?

Hormis les images et vidéos, j’ai des plugins que je souhaite retrouver sur ma nouvelle installation :

  • Custom-login (personnalisation de l’écran de connexion)
  • email-subscribers (envoi de mails aux utilisateurs lors de nouveaux articles)
  • login-with-ajax (permettre de restreindre l’accès aux utilisateurs inscrits)
  • members (gestion des rôles des utilisateurs)
  • wp-user-avatar (ajout d’avatars personnalisés aux utilisateurs)

Vos conseils ?

Merci d’avance pour votre aide ! :slight_smile:


#2

Bonjour,

Je ne connais pas Wordpress et les manipulations que tu envisages. Cepedant je peux donner mon avis et tenter de répondre à tes questions.

Je procéderai ainsi également

Je pense qu’il faut faire comme si tu migrais sur un nouveau serveur en suivant cette page https://codex.wordpress.org/Moving_WordPress

Yunohost installe des modules en plus et configure wp-config.php. Il faudra certainement jouer au jeu des sept différences avec le fichier fourni par Yunohost (https://github.com/YunoHost-Apps/wordpress_ynh/blob/master/conf/wp-config.php) car tu ne pourras pas réimporter ton fichier de config tel quel.
https://github.com/YunoHost-Apps/wordpress_ynh/blob/master/scripts/install#L162-L172

J’écraserai le tout personnellement.

Il suffirait de rappeler le script de mise à jour en ligne de commande pour rejoue toute la procédure et corrige les droits. ca devrait fonctionner

Pour les plugins, je ne sais pas s’ils seront migrés également. Il faudrait voir comment fonctionne Wordpress là dessus.


Mon avis sans avoir testé et sans connaitre le produit :partying_face:


#3

Merci pour ta réponse, je teste ça dès que possible (mais bon entre temps j’ai un autre souci plus global :’( )


#4

Je viens de migrer dans la douleur deux Wordpress vers mon Yuno, mais enfin ça tourne. Voici comment je m’y suis pris.

  1. Installer l’app sur Yunohost
  2. Transférer les fichiers wp-content de l’ancien serveur vers YunoHost. J’ai utilisé rsync pour écraser le contenu, tout en conservant les autres fichiers (le plugin Simple LDAP, entre autres). Par exemple :
cd /var/www/wordpress__2
sudo rsync -av login@ancien.serveur:wp-content/* wp-content
sudo chown -R wordpress__2:wordpress__2 wp-content
  1. J’exporte la base de données initiale (un export de base depuis PHPMyAdmin marche très bien).
  2. Je vide la base de données du (bon !) Wordpress sur YunoHost.
  3. Je réimporte ensuite la base sur Yunohost : depuis PHPMyAdmin pour un petit site, ou pour un plus gros site en ligne de commande avec un truc du genre :
sudo mysql -uroot wordpress__2 < mon-export.sql
  1. J’insère la ligne de config qui va bien pour le LDAP :
INSERT INTO wp_options VALUES('','sll_settings','a:14:{s:14:"account_suffix";s:0:"";s:7:"base_dn";s:27:"ou=users,dc=yunohost,dc=org";s:18:"domain_controllers";a:1:{i:0;s:9:"localhost";}s:9:"directory";s:2:"ol";s:4:"role";s:10:"subscriber";s:13:"high_security";s:5:"false";s:8:"ol_login";s:3:"uid";s:7:"use_tls";s:5:"false";s:9:"ldap_port";s:3:"389";s:12:"ldap_version";s:1:"3";s:12:"create_users";s:4:"true";s:7:"enabled";s:4:"true";s:7:"version";s:3:"1.5";s:6:"groups";a:1:{i:0;s:0:"";}}','yes');
  1. Je me connecte sur WordPress avec mon ancien mot de passe.
  2. J’active tous les plugins qui vont bien, dont Simple LDAP et tant qu’à faire WP Fail2Ban.
  3. C’est fini :slight_smile: Je peux désormais me connecter avec mon mot de passe YunoHost (en LDAP) ou mon mot de passe Wordpress (natif). Je peux désactiver ce deuxième depuis la config de Simple LDAP.

Notez, si vous avez changé le préfixe de vos tables sur votre ancienne installation, que Wordpress utilise ce préfixe pour définir les droits. Vous risquez de vous trouver dans une situation très désagréable où il vous sera possible de vous loguer, mais Wordpress refusera l’accès à la console d’admin. Il faudra donc adapter (au moins) les tables wp_options et wp_usermeta. Exemple :

UPDATE wp_usermeta SET meta_key = REPLACE(meta_key, 'ancienprefixe_', 'wp_');

Et voilà :slight_smile:


Transférer un site depuis un autre hébergeur
#5

It’s not about YunoHost. Wordpress has a import/export feature for those who want to migrate their wordpress.


#6

Yes, but it is very limited. It won’t transfer your media for instance.


#7

Il y a aussi le plugin Duplicator.

L’idée étant qu’une fois installé sur le site d’origine, il génère un gros fichier archive et un install.php. Avec un accès ssh au serveur de destination, vous pouvez faire comme suit.

Sur le serveur Yunohost de destination, installer un WP « vide».

Repérer et conserver le user et le pass Mysql dans le fichier /var/www/wordpress/wp-config.php.

# cat /var/www/wordpress/wp-config.php | grep DB_

Déplacer temporairement (juste par habitude et prudence) ce dossier pour l’effacer plus tard si tout s’est bien passé.

# mv /var/www/wordpress/ /var/www/wordpress.bak

Créer un nouveau dossier pour le Wordpress à transférer et changer le propriétaire.

# mkdir /var/www/wordpress 
# chown wordpress: /var/www/wordpress

Transférer le install.php et l’archive générée par Dublicator vers /var/www/wordpress comme bon vous semble (rsync, scp, sftp,…).

Changer le propriétaire.

# chown -R wordpress: /var/www/wordpress

Se rendre sur l’url de votre futur Wordpress en ajoutant /install.php et suivre l’assistant. Vous pourrez utiliser le login et le mot de passe Mysql récupéré avant.

Et si tout s’est bien passé, ça devrait rouler.

Supprimez l’installation vide de WordPress.

# rm -rf /var/www/wordpress.bak

C’est grosso modo comme ça que je fit il y a quelques années.


Transférer un site depuis un autre hébergeur
#8

Merci pour le partage.

J’avais vu ce plugin et hésité. Avec cette solution, tu ne déploies pas le Simple LDAP. Il te faudra donc l’installer à la main et reprendre l’étape 6 que j’ai citée plus haut si tu souhaites une intégration au LDAP.