Migrer un Wordpress vers YunoHost

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:

2 Likes