Je viens de migrer dans la douleur deux Wordpress vers mon Yuno, mais enfin ça tourne. Voici comment je m’y suis pris.
- Installer l’app sur Yunohost
- 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
- J’exporte la base de données initiale (un export de base depuis PHPMyAdmin marche très bien).
- Je vide la base de données du (bon !) Wordpress sur YunoHost.
- 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
- 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');
- Je me connecte sur WordPress avec mon ancien mot de passe.
- J’active tous les plugins qui vont bien, dont Simple LDAP et tant qu’à faire WP Fail2Ban.
- C’est fini 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à