Tagged: .htaccess, blogues.québec.tk, CyberPanel, DNS, Mercator, multisite, SSL, WordPress
- This topic has 1 reply, 1 voice, and was last updated 3 years, 9 months ago by Bigue Nique.
-
AuthorPosts
-
13 février 2021 at 2 h 43 min #569Bigue NiqueKeymaster
blogues.québec.tk
Réseau WP multisite pour offrir un service d’hébergement de blogues limité mais gratuit.
« Blogues » : http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8370242
Notes d’installation
17:13 2021-01-26
Nous allons effectuer le suivi scrupuleux des étapes dans la perspective de créer un tutoriel sur Méta.
Notez que le parser Markdown de Nextcloud a l’air d’en arracher grave !
Planification
À faire :
- [x] 1. Configurer les zones DNS (DigitalOcean)
- [x] 2. Créer un site blogues.qc1.fiatlux.tk (CyberPanel/QC1) + domaines additionnels + SSL
- [x] 3. Installer WordPress
- [x] 4. Activer multisite
- [x] 5. Installer Mercator (permet d’ajouter des alias de domaines)
17:33 2021-01-26
1. Configurer les zones DNS (DigitalOcean)
Tout compte fait, on va déclarer
blogues.qc1.fiatlux.tk
(domaine de base) en interne dans CP et ajouterblogues.fiatlux.tk
,blogues.québec.tk
etblogues.quebec.tk
en alias (domaines add-on pointant sur public_html). Ça va nous donner plus de flexibilité et de contrôle s’il fallait éventuellement déménager/sharder le service d’hébergement sur différents serveurs.Il faut donc configurer les zones DNS sur les 3 domaines (tous les NS sont chez DigitalOcean : c’est gratuit et très performant !).
- *.qc1.fiatlux.tk renvoie déjà à QC1 (CNAME) (mais on va quand même créer les zones + http://www.*, que le CNAME ne couvre pas)
- blogues.quebec.tk CNAME blogues.qc1.fiatlux.tk
- blogues.xn--qubec-csa.tk CNAME blogues.qc1.fiatlux.tk
J’en profite pour créer également des zones blogs.* (pendant anglophone), http://www.blogues.*, http://www.blogs.*. On redirigera si nécessaire au moment déterminant. Je met les TTL à 3600 (1 heure) pour commencer (permet de corriger rapidement une erreur) et les ferai passer à 43200 (12 heures) lorsque tout sera correctement configuré et testé.
Accès DO/networking/domains : https://cloud.digitalocean.com/networking/domains
On a donc ajouté les zones suivantes (TTL=3600) :
- quebec.tk :
- blogues.quebec.tk CNAME blogues.qc1.fiatlux.tk
- http://www.blogues.quebec.tk CNAME blogues.qc1.fiatlux.tk
- blogs.quebec.tk CNAME blogs.qc1.fiatlux.tk
- http://www.blogs.quebec.tk CNAME blogs.qc1.fiatlux.tk
- xn--qubec-csa.tk :
- blogues.xn--qubec-csa.tk CNAME blogues.qc1.fiatlux.tk
- http://www.blogues.xn--qubec-csa.tk CNAME blogues.qc1.fiatlux.tk
- blogs.xn--qubec-csa.tk CNAME blogs.qc1.fiatlux.tk
- http://www.blogs.xn--qubec-csa.tk CNAME blogs.qc1.fiatlux.tk
- fiatlux.tk :
- blogues.qc1.fiatlux.tk CNAME qc1.fiatlux.tk
- http://www.blogues.qc1.fiatlux.tk CNAME qc1.fiatlux.tk
- blogs.qc1.fiatlux.tk CNAME qc1.fiatlux.tk
- http://www.blogs.qc1.fiatlux.tk CNAME qc1.fiatlux.tk
- blogues.fiatlux.tk CNAME blogues.qc1.fiatlux.tk
- http://www.blogues.fiatlux.tk CNAME blogues.fiatlux.tk
- blogs.fiatlux.tk CNAME blogs.qc1.fiatlux.tk
- http://www.blogs.fiatlux.tk CNAME blogs.fiatlux.tk
Donc, ultimement, tous ces beaux domaines se résolveront sur qc1.fiatlux.tk (zone A ipv4=51.79.53.108/zone AAAA ipv6=2607:5300:205:200::139c) ! On est donc prêts à créer le site, les alias (add-ons) et les certificats SSL sur CyberPanel !
2. Créer un site blogues.qc1.fiatlux.tk (CyberPanel/QC1) + domaines additionnels + SSL
Création du site :
- https://qc1.fiatlux.tk:8090/websites/createWebsite
- Select Package : Default
- Select Owner : admin
- Domain Name : blogues.qc1.fiatlux.tk
- Email : admin@fiatlux.tk
- Select PHP : PHP 7.4
- Additional Features : SSL
- Create Website !
Ajout des alias (add-on domains) :
- Manage Website
- Pour chacun des domaines (excepté les variantes www, pris en charge automatiquement par CyberPanel) (exemple) :
- Domains > Add Domains
- Domain Name : blogs.qc1.fiatlux.tk
- Path: /home/blogues.qc1.fiatlux.tk/ : public_html
- Select PHP : PHP 7.4
- Additional Features : SSL
- Create Domain !
- Et ainsi pour chacun des domaines/sous-domaines ci-haut configurés (cela prend un certain temps (ça m’aura pris ici de 18:34 à 18:47). On en profite généralement pour faire une tâche « légère » en simultané (pour ma part j’en ai profité pour peaufiner ce texte et configurer un site avec les alias de domaines dans Matomo !)
- Ceci créera un domaine alias (même dossier racine) avec un certificat SSL distinct (domaine+www.domaine). NE PAS utiliser la fonctionalité Domains > Domain Alias de CyberPanel qui échoue fatalement à créer des certificats valides pour plus d’un alias. De plus il y a un intérêt réel à gérer des certificats SSL distincts pour chaque domaine.
- Note : l’émission du certificat Let’s Encrypt échouera si le domaine ne résout pas sur l’IP de l’hôte CyberPanel (d’où l’importance de créer les zones avant de créer le site); dans ce cas CyberPanel générera un certificat auto-signé (self-signed) et par conséquent invalide.
- C’est la raison pour laquelle on définit des TTL relativement courts au départ, ça nous permettra d’éviter d’avoir à attendre 12 heures avant de réémettre un certificat sur une zone mal configurée
- Il sera possible de re-générer le certificat Let’s Encrypt plus tard (TTL secondes — TTL de la zone DNS — après le dernier essai sur celle-ci !).
On peut tester les certificats simplement en visitant chacun des domaines (avec https://) dans le navigateur.
18:51 2021-01-26
Redirections : on veut rediriger tout ces alias sur https://blogues.québec.tk (pour l’instant; on rajustera plus tard si on fait une version anglophone sur https://blogs.québec.tk).
Note : on a besoin de certificats SSL sur tous les domaines même si ceux-ci sont redirigés, autrement un navigateur pointant par exemple sur https://www.blogues.qc1.fiatlux.tk n’obtempèrera pas si le certificat est invalide; pire : il affichera un avertissement de sécurité qui plongera votre visiteur dans un effroi terrible !
On redirigera toutes nos variantes à l’aide d’un simple règle
RewriteRule
dans.htaccess
.Modifier
.htaccess
:- Manage Website : https://qc1.fiatlux.tk:8090/websites/blogues.qc1.fiatlux.tk
- Configurations > Rewrite Rules
`
BN20210126 Rediriger tous les alias vers https://blogues.québec.tk
RewriteEngine on
RewriteCond %{HTTP_HOST} ^((www.)?blog(ue)?s.(qc1.)?(fiatlux|quebec)|(www.blog(ue)?s|blogs).xn--qubec-csa).tk$ [NC]
RewriteRule ^/?(.*)$ https://blogues.xn--qubec-csa.tk/$1 [R=302,L]
`
Note : tester d’abord les redirections avec
R=302
(Redirection temporaire), puis changer pourR=301
(Redirection permanente) lorsque tout fonctionne comme prévu !19:29 2021-01-26
3. Installer WordPress
Rien de plus simple avec CyberPanel !
- Manage Website : https://qc1.fiatlux.tk:8090/websites/blogues.qc1.fiatlux.tk
- Application Installer > WP + LSCache
- Blog Title : Blogues Québec
- Login User : <masqué>
- Login Password : <masqué>
- Email : <masqué>
- Path :
- Install Now !
19:37 2021-01-26
Aaaah ! Si la vie était si simple !
J’ai plusieurs raisons d’être mécontent de l’installation automatique de WordPress par CyberPanel :
- CP a créé une base de données avec un nom bâtard :
UukrWv1Ix5Pe1O
. C’est peut-être plus sécuritaire ainsi (complique la vie des hackers), mais c’est pas trop pratique quand tu gères plusieurs bases de données sur le même serveur… - Le mot de passe défini à la création… ne fonctionne pas !!
- La réinitialisation de mot de passe… ne fonctionne pas !!
Ainsi, je n’ai aucun moyen de me connecter sur l’admin de mon nouveau site, ce qui rend la chose parfaitement inutile. Comment on récupère l’affaire à partir de là ?
Note: La raison de l’échec de connexion est probablement liée au cache du navigateur que j’utilisais, et non à un problème avec l’installateur de CyberPanel (voir plus bas). Ce programme ne surgirait probablement pas si le site était installé sur un domaine unique (sans redirections).
- Supprimer la base de données (CyberPanel) : UukrWv1Ix5Pe1O
- Attention : passer par CyberPanel (et non PHPMyAdmin, sinon vous devrez re-créer une BD du même nom avant de pouvoir la supprimer dans CyberPanel !)
- Peut-on re-lancer l’installation (manuelle) de WordPress ?
- Yop, ici : https://blogues.québec.tk/wp-admin/install.php
- Mais il faut d’abord créer une nouvelle base de données !
- Créer une nouvelle base de données (CyberPanel)
- Database > Create Database : https://qc1.fiatlux.tk:8090/dataBases/createDatabase
- Select Website : blogues.qc1.fiatlux.tk
- Database Name : abcd (blog_abcd)
- User Name : abcd (blog_abcd)
- Password :
- Ensuite on va aller renseigner ceci dans
wp-config.php
- On peut passer par CyberPanel (Manage Website > Files > File Manager)
- On peut y aller par FTP ou SSH itou.
- On en profite au passage pour générer de nouvelles clés uniques
- https://api.wordpress.org/secret-key/1.1/salt/
- Et pour changer le préfixe par défaut
wp_
en<masqué>_
(petit gain de sécurité)
- Relancer l’installation WordPress : https://blogues.québec.tk/wp-admin/install.php
- N’utilisez pas de compte
admin
: 97% des tentatives d’intrusion utilisent ce compte ! - Utilisez un mot de passe FORT pour le compte super-utilisateur (quitte à ne jamais le retenir vous-même et à l’enregistrer dans Nextcloud Passwords !)
- N’utilisez pas de compte
Bon ben <masqué> ça marche toujours pas.
Solution : https://wordpress.org/support/article/login-trouble/
En fait je catche pas grand chose… ça marche en navigation privée, mais pas dans mon navigateur habituel… Même en flushant le cache !! Pourquoi des redirections de blogues.qc1.fiatlux.tk vers blogues.québec.tk apparaissent dans Network ? Pourquoi si on est sur blogues.québec.tk, si l’installation s’est faite sur le domaine ? Où est-ce que WP va chercher ça ? Dans le cache du navigateur ? Un autre cache ? WTF mesdames et messieurs, WTF !
J’ai fini par y arriver (sans modifications à wp-config.php) en flushant la totalité du cache et les cookies et en redémarrant le navigateur !
21:58 2021-01-26
22:19 2021-01-26
4. Activer multisite
Référence : https://www.wpbeginner.com/glossary/multisite/
Pour commencer, on ajoute ça à
wp-config.php
:/* Multisite */
define('WP_ALLOW_MULTISITE', true);
<code></code>Ensuite :
- Se connecter à l’admin WP
- Désactiver toutes les extension
- Outils > Création du réseau
- Adresses des sites de votre réseau : Sous-domaines
- On veut que chaque site puisse être hébergé sur son propre domaine, on ne veut donc pas d’un sous-répertoire dans le chemin !
- Détails du réseau
- Titre du réseau : Québec Blogues
- Courriel de l’administrateur du réseau : <inchangé>
- Installer !
- Suivre les instructions à l’écran
On nous demande :
- De créer un enregistrement DNS générique (joker) qui fait pointer *.blogues.xn--qubec-csa.tk vers blogues.xn--qubec.tk.
Comme on va utiliser des domaines personnalisés pour chaque site, on ne se servira pas de cette fonctionnalité, faque tsé. Pas besoin, l’gros.
- D’ajouter ceci à
wp-config.php
:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'blogues.xn--qubec-csa.tk');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
<code></code>- D’ajouter cela à
.htaccess
en remplacement des règles WordPress existantes :
`
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ – [L]add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^(wp-(content|admin|includes).) $1 [L]
RewriteRule ^(..php)$ $1 [L]
RewriteRule . index.php [L]
`
On obtempère gentiment et on se reconnecte, tel que prescrit :
Bon. Cool. On a un réseau WordPress multisite.
22:45 2021-01-26
02:20 2021-01-27
5. Installer Mercator (permet d’ajouter des alias de domaines)
La révolution Mercator !
Référence : https://github.com/humanmade/Mercator
Je lisais les instructions pour installer Mercator (référence ci-haut), et je constatai avec surprise :
If an alias of arbitrarydomain.com is set for the site network.com/subsite, the site and wp-admin interface can be accessed over either the alias or the original URL.
En français, ça donnerait quelque chose comme :
Si un alias de domainearbitraire.com est défini pour le site reseau.com/sous-site, le site et l’interface wp-admin peuvent être atteints via soit l’alias, soit l’URL original.
Ça, ce que ça veut dire, c’est que le blogue de Joe pourrait être accessible via https://blogues.québec.tk/joe, et si Joe enregistre un domaine, on pourra configurer son domaine (bloguedejoe.com) avec SSL ensuite. L’avantage de cette méthode, c’est qu’on peut créer et opérer initialement le blogue de Joe sans avoir à créer un nouveau certificat SSL (puisque le blogue fonctionnera sur le certificat de blogues.québec.tk), ni à avoir à configurer un certificat wildcard (valide pour tous les sous-domaines), ce qui est compliqué et présente des risques de sécurité. On n’aura à ajouter le domaine ‘add-on’ dans CyberPanel et généner son certificat Let’s Encrypt que sur la demande expresse de Joe.
Je reviens donc sur ma décision, faite au point 4, de configurer le réseau en mode sous-domaines plutôt que sous-répertoire. Pour y arriver, je modifierai simplement cette ligne dans
wp-config.php
:define('SUBDOMAIN_INSTALL', false);
<code></code>Et j’irai ensuite consulter, dans l’admin du réseau, la section Réglages > Création du réseau pour constater les changements à faire à
.htaccess
(on remplace toute la section WordPress située entre<ifModule mod_rewrite.c>
et</ifModule>
) :`
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ – [L]add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]
`
Note : après une modification de
.htaccess
, il est généralement nécessaire de redémarrer le serveur web. D’où l’intérêt de passer par CyberPanel : Manage Website > Configurations > Rewrite Rules, puisque CyberPanel se charge de redémarrer le serveur OpenLiteSpeed après toute modification de.htaccess
.Ainsi un site
test
sera dorénavant accessible via :- https://blogues.québec.tk/test/ (frontend)
- https://blogues.québec.tk/test/wp-admin/ (backend)
Avantages :
- Pas besoin de configurer une zone DNS
- Pas besoin d’ajouter un domaine dans CyberPanel
- Pas besoin d’émettre un nouveau certificat SSL
Maintenant, installons Mercator !
02:46 2021-01-27
Installons Mercator !
Pour ce faire nous suivrons les instructions de Mercator (référence ci-haut).
Mercator n’est pas une extension comme les autres : elle s’installe dans un dossier spécial
mu-plugins
(qu’il faudra créer au besoin, à côté du dossierplugins
régulier) et doit être chargée au tout début de la séquence de chargement de WordPress (phase dite sunrise).D’une façon ou d’une autre (FTP ou File Manager de CyberPanel), il faut trouver le moyen de copier les fichiers de Mercator dans
wp-content/mu-plugins/mercator
(« il se pourrait que vous ayiez à renommerMercator-master
enmercator
», nous dit-on).Pour ma part, je profiterai du fait que Mercator est sur GitHub pour l’installer avec git via SSH. Je commencerai par personnifier l’utilisateur du site WordPress (sur un setup CyberPanel, faites
sudo ls -l /home
pour afficher les noms d’utilisateurs de chaque site.$ sudo su <nom d'utilisateur masqué>
$ cd ~/public_html/wp-content
$ mkdir mu-plugins
$ cd mu-plugins
$ git clone https://github.com/humanmade/Mercator mercator
<code></code>Note : Ensuite, faire une mise à jour de l’extension sera aussi simple que
git pull
(dans le dossiermercator
).On crée ensuite un fichier ‘wp-content/sunrise.php’ dans lequel on ajoutera ce code :
`
<?php
// Default mu-plugins directory if you haven’t set it
defined( ‘WPMU_PLUGIN_DIR’ ) or define( ‘WPMU_PLUGIN_DIR’, WP_CONTENT_DIR . ‘/mu-plugins’ );require WPMU_PLUGIN_DIR . ‘/mercator/mercator.php’;
`
Il faut ensuite activer le sunrise, en ajoutant cette ligne dans
wp-config.php
:define('SUNRISE', true);
<code></code>Si tout se passe bien, on pourra se rendre dans l’admin réseau de WordPress > Sites > Modifier, et un nouvel onglet Aliases sera visible !
03:10 2021-01-27
Essayons donc ça
Créons un alias pour notre site
test
. On va utilisertest.fiatlux.tk
(*.fiatlux.tk
pointe déjà vers qc1.fiatlux.tk, donc pas besoin de créer de zones DNS).Dans CyberPanel :
- (Manage Website) : https://qc1.fiatlux.tk:8090/websites/blogues.qc1.fiatlux.tk
- Domains > Add Domains
- Domain Name : test.fiatlux.tk
- Path: /home/blogues.qc1.fiatlux.tk/ : plubic_html
- Select PHP : PHP 7.4
- Additional Features : SSL
- Create Domain !
- Dans WordPress
- Mes sites > Admin du réseau > Sites
- Modifier
blogues.xn--qubec-csa.tk/test
> Onglet Aliases - Cliquer sur Add New
- Domain Name : test.fiatlux.tk
- Active : cocher Mark alias as active
- Add Alias !
Good job. En théorie, on peut ouvrir un navigateur sur https://test.fiatlux.tk. ~~Whoops ! Le site est redirigé vers https://blogues.québec.tk !~~ (J’ai rien dit : j’avais juste oublié de cliquer sur le bouton Add Alias !)
Ah ! Si la vie était si simple ! Et bien, elle l’est !
Notes pour le futur : si jamais il y a des problèmes d’authentification, jette un coup d’oeil à
sunrise.php
où j’ai ajouté (forme commentée) les modifications que j’avais dû faire sur le réseau fiatlux.tk en avril 2020, et aussi du côte deCOOKIE_DOMAIN
danswp-config.php
, qui devra peut-être être manipulé (voir ligne commentée).wp-content/sunrise.php
avec les lignes commentées (qui désactiveraient la SSO) :
<?php
// Default mu-plugins directory if you haven’t set it
defined( ‘WPMU_PLUGIN_DIR’ ) or define( ‘WPMU_PLUGIN_DIR’, WP_CONTENT_DIR . ‘/mu-plugins’ );20200428 Désactive la SSO
https://github.com/humanmade/Mercator/issues/110#issuecomment-615384899
#add_filter( ‘mercator.sso.enabled’, ‘__return_false’ );
#add_filter( ‘mercator.sso.multinetwork.enabled’, ‘__return_false’ );require WPMU_PLUGIN_DIR . ‘/mercator/mercator.php’;
Lignes commentés dont il est question dans
config.php
:
/* Force cookie domain? Super WTF to the power of 2… */
#define(‘DOMAIN_CURRENT_SITE’, ‘blogues.xn--quebec-csa.tk’);
#define(‘COOKIE_DOMAIN’, $_SERVER[‘HTTP_HOST’]);
04:00 2021-01-27
13 février 2021 at 3 h 33 min #571Bigue NiqueKeymasterOn s’excuse pour les problèmes de mise en page dans ce forum. Est-ce bbPress ou Markdown qui ajoute « http:// » devant les « www » et remplace les
# commentaires
dans les blocs de code par des titres, tout en bousillant allègrement ces dits blocs ?Cet article avait initialement été rédigé en Markdown sur Nextcloud.
-
AuthorPosts
- You must be logged in to reply to this topic.