Installation de dotclear 2 Aoraki
Par Petaramesh le dimanche 3 décembre 2006, 10:30 - Informatique non-duelle - Lien permanent
Le but de ce billet est de détailler quelques points de mon installation de dotclear 2 (Aoraki) (en upgrade depuis dotclear 1.2.5), et notamment les méthodes barbares pour :
- Installer le blog à la racine du site
- Masquer, dans les URLs visibles pour les visiteurs, le nom du sous-répertoire et le "index.php"
- Rediriger les anciennes URLs du blog dotclear 1.2.5, de manière à ce qu'elles fonctionnent toujours avec dotclear 2 (Aoraki), qui a des URLs composées différemment (comportant un élément supplémentaire)
Toutes les bidouilles que je vais narrer ici sont basées sur la réécriture d'URL et la redirection d'URL, effectuées par le serveur.
Afin d'éviter les confusions, je vais rapidement expliquer la différence entre ces deux concepts : Supposez que le facteur vous apporte un colis qui n'est pas pour vous, mais pour l'ancien locataire :
- Vous acceptez le colis sans rien dire, puis l'apportez vous-même à l'ancien locataire : vous avez fait de la réécriture d'URL : Le colis est arrivé à son destinataire, le facteur n'a rien eu à faire de plus, mais il n'est pas forcément informé que l'adresse du destinataire a changé.
- Vous n'acceptez pas le colis, mais vous informez le facteur de la nouvelle adresse du destinataire ; le facteur devra aller livrer lui-même le colis à cette adresse : vous avez fait de la redirection d'URL : Le facteur a du effectuer deux livraisons, mais il connaît maintenant la nouvelle adresse du destinataire. La prochaine fois, il s'y rendra directement.
On voit donc que :
- La réécriture d'URL peut permettre de masquer en permanence le fait qu'une destination réelle diffère de la destination apparente. C'est le serveur qui fait le boulot de livrer le colis au bon endroit.
- La redirection d'URL permet de prévenir "l'expéditeur" que l'adresse a changé. C'est au navigateur du visiteur de se connecter sur la nouvelle adresse (ce que la plupart des navigateurs font automatiquement), mais c'est surtout utile pour les robots des moteurs de recherche, qui mettent à jour leur index en ne conservant que la destination véritable.
- La réécriture d'URL est gérée par le module mod_rewrite du serveur web Apache.
- La redirection d'URL est gérée par le module mod_alias du serveur web Apache.
La disponibilité de ces modules dépend de votre hébergeur.
Je les ai personnellement configurés dans le fichier de configuration du serveur virtuel du domaine de mon blog, qui est chez moi "/etc/httpd/conf/vhosts.d/petaramesh.org.conf".
Mais si vous faites appel à un hébergeur extérieur, vous n'aurez certainement pas accès à un tel fichier, et vous devrez (probablement) mettre les directives en question dans un fichier ".htaccess" installé à la racine de votre site.
Les instructions de redirection devront y être écrites dans l'ordre où je les donne.
Installation de dotclear à la racine
Ceci vous permettra de mette votre blog à l'adresse http://petaramesh.org par exemple, plutôt que http://petaramesh.org/dotclear/index.php.
De même, vos billets auront des URLS comme http://petaramesh.org/post/2006/12/02/Saut-quantique-effectue par exemple, plutôt que http://petaramesh.org/dotclear/index.php/post/2006/12/02/Saut-quantique-effectue.
En premier lieu, déposons le fichier archive de dotclear 2 (Aoraki) : dotclear-2.0-beta3.1.tar.gz (ou .zip) dans le répertoire racine de notre site, et décompressons-le, ce qui crée un sous-répertoire dotclear qui contient la totalité des éléments nécessaires.
(Vous pouvez aussi le décompresser sur votre ordinateur, et uploader par FTP la totalité de l'arborescence ainsi obtenue. Tout dépend de savoir si vous pouvez exécuter une décompression directement sur le serveur, ou pas.)
Personnellement, j'ai choisi de renommer le répertoire dotclear en blog chez moi, mais vous pouvez très bien le garder sous l'appellation dotclear. Il vous faudra seulement modifier en conséquence (n'oubliez pas de le faire !) les règles que je donne ci-dessous.
Ensuite, déplacez le fichier "index.php" du répertoire "blog" vers le répertoire racine de votre site. Personnellement, j'ai également renommé "index.php" en "blog.php".
Modifiez ensuite ce fichier de manière à bien y indiquer le nom de votre blog, si ce n'est pas "default" :
# Define your blog here
define('DC_BLOG_ID','ashram');
Et prenez soin de bien indiquer la localisation du fichier prepend.php à partir de la racine de votre site :
require dirname(__FILE__).'/blog/inc/public/prepend.php';
Voilà.
Nous allons maintenant nous intéresser aux réécritures à mettre en place, probablement dans votre fichier .htaccess, à installer à la racine. N'oubliez pas d'instructions, et laissez-les bien dans le même ordre :
=> (Documentation mod_rewrite du serveur web Apache.)
RewriteEngine On RewriteOptions inherit
Ces deux lignes permettent d'activer le moteur de réécriture, et d'hériter ses règles de fonctionnement par défaut de celles définies pour l'ensemble du serveur. Il n'est pas certain qu'elles soient nécessaires chez vous.
RewriteCond %{REQUEST_URI} ^/(admin|locales|public|themes)
RewriteRule ^/(.*)$ /blog/$1 [L]
Ces deux lignes permettent de rediriger les URLs spécifiques à l'interface d'administration et aux différents sous-répertoires de votre installation dotclear.[1]
(n'oubliez pas que le "/blog/" n'est valable que parce que mon blog est installé dans un répertoire appelé "blog". Si chez vous c'est "dotclear", adaptez en conséquence).
RewriteCond %{REQUEST_URI} !^/(cgi-bin|error|icons|robots.txt|favicon.ico|2006/|404|blog|files/|img/|webcollage)
Ici, une regexp définit une série de répertoires ou pages pour lesquelles nous ne voulons effectuer aucune réécriture, de manière à pouvoir accéder à ces pages ou répertoires qui peuvent être installés dans notre site en-dehors de l'architecture du blog lui-même. Il est particulièrement important de mentionner le fichier "robots.txt" si vous en avez un, ainsi qu'éventuellement les répertoires "/cgi-bin" et "/icons" du serveur, si vous voulez qu'on puisse accéder à leur contenu sans se retrouver routé dans le blog.
L'entrée "/2006/" sert à ne pas réécrire les anciennes URLs de l'installation de dotclear 1.x. Elles seront reroutées plus bas.
RewriteCond %{REQUEST_URI} !^/(A-lire-ailleurs|Big-brother|Chienne-de-vie|General|Inferno-chomismorum|Informatique-non-duelle|Intime-universel|Mechancete-gratuite|Miscellania|Non-dualite|Paul-et-mick|Politique-infiniment-dualiste|Pornographie|Port-nawak|Pouet|Raleries-dualistes|Wrt54g)$
Cette entrée spéciale sert à ne pas réécrire les anciennes URLs des catégories de votre blog. Mettez ici vos propres catégories, ou omettez la ligne si vous n'en utilisiez pas ou si vous vous en foutez.
RewriteRule (.*)$ /blog.php/$1 [L]
Voici enfin la règle de réécriture proprement dite, qui rajoute un "/blog.php/" au début de toutes les URLs que le serveur reçoit, et qui n'ont pas été traitées spécifiquement, ou spécifiquement ignorées du fait des règles précédentes.
Redirection des anciennes URL dotclear 1.x
=> (Documentation mod_alias du serveur web Apache.)
dotclear 2 ajoute dans les URLS un élément de "catégorie", comme "/post/", "/archive/", ou "/category/", etc, qui n'existait pas dans dotclear 1.x. Il faurt donc maintenant construire les redirections comme suit :
Redirect permanent /blog/rss.php http://www.petaramesh.org/feed/rss2
Cette permière règle est une tentative de redirection du flux RSS de l'ancienne adresse à la nouvelle, et ça, je ne sais pas du tout si ça marche pour les agrégateurs ;-)
RedirectMatch 301 ^/2006/([0-9]{2}/[0-9]{2}/[0-9][0-9]*-.*)$ /post/2006/$1
Cette règle-ci redirige toutes mes anciennes URLs de posts de 2006, vers les nouvelles. Attention, si vous avez des posts d'années antérieures, mettez plusieurs lignes, ou adaptez la regexp en conséquence.
RedirectMatch 301 ^/2006/([0-9]{2}/[0-9]{2})$ /archive/2006/$1
RedirectMatch 301 ^/2006/([0-9]{2})$ /archive/2006/$1
Ces deux lignes traitent les entrées d'archives (affichage jour et mois, respectivement).
RedirectMatch 301 ^/(A-lire-ailleurs|Big-brother|Chienne-de-vie|General|Inferno-chomismorum|Informatique-non-duelle|Intime-universel|Mechancete-gratuite|Miscellania|Non-dualite|Paul-et-mick|Politique-infiniment-dualiste|Pornographie|Port-nawak|Pouet|Raleries-dualistes|Wrt54g)$ /category/$1
Et enfin cette ligne traite les catégories. Il vous faut donc y mettre vos catégories (celles qui existaient dans votre ancienne installation ; il ne sera pas utile de rajouter des catégories que vous créeriez uniquement dans votre nouvelle installation).
Et voilà. Si vous avez tout bien fait, vous devriez maintenant avoir un dotclear 2 (Aoraki) installé à la racine, et avec des URLs compatibles avec celles de votre vieux dotclear 1.x.
Pour les autres instructions d'installation (initialisation, etc...), veuillez vous rapporter à la belle documentation et au forum approprié...
Elle est pas belle, la vie ?
Notes
[1] Certains sous-répertoires ne sont pas mentionnés : Ceux auxquels le visiteur n'est pas censé accéder directement, par exemple /db/, /inc/ et /plugins/. dotclear y installe par ailleurs un fichier .htaccess contenant l'instruction "Deny from all", qui y interdit l'accès.










Commentaires
Rââââ déjà .... t'est trop mignon :-) Tiens te fais un bisou pour la peine. Je regarderai ça dans le détail ce soir. Je file ....
@Sophie Ménart :
Ça me perdra :-}
encore en train de bricoler!
et tes textes plaisirs du matin ou délices de l'après-midi, ils reviennent quand?
@Céleste :
Merci :-)
Eh bien, je me suis senti plus utile avec ces quelques petites geekeries, qui m'ont pris pas mal de temps...
Mais vu les angoisses que je me paie ces derniers jours et la nuit blanche que je viens de passer (et même pas pour le fun...), si j'écrivais quelque chose là, juste maintenant, ce ne serait sans doute pas quelque chose de bien rose... Ah elle est belle, tiens, ma non-dualité ;~\
P.S. : Céleste, ça fait deux fois que tes commentaires se trouvent spamplemoussés au motif que ton adresse IP est blacklistée par sbl-xbl.spamhaus.org. Hélas, je n'y peux rien, sauf débloquer ton commentaire a posteriori...
spamplemoussés???
bigre!
il y a effectivement des blogs sur lesquels je ne peux pas laisser de coms.
Je peux faire qq chose?
@Céleste :
Comme râler auprès de la blacklist a très peu de chances de produire un quelconque effet... à part changer de F.A.I si le tien mérite sa liste noire... Je ne vois pas.
pschhhhhht ! Je viens d'essayer de lire (et surtout de comprendre) mais non , dommage MON neurone vient de se désagréger sous l'effort et de repartir dans le néant ... arghhhh!
Chui rentrée vais faire une sieste avant d'attaquer mon .htaccess ... t'es trop mignon et cette fois sans fôte ;-)
Juste pour te dire que tout semble fonctionner, et que je n'ai même rien eu à changer dans le paramétrage de l'extension 'Sage' de Firefox pour continuer à lire aussi bien les nouveaux que les anciens posts de ce blog... so far, so good !
Du travail de Swâmi comme d'hab :-)
Bon et bien moi, je tourne en rond et je ne m'en sors pas, query string à query string, c'est pas de la tarte quand on a jamais manipulé ce genre d'instructions et là je commence à péter les plombs.
J'ai essayé pleins de trucs sans succès à part bloquer mon blog. Et les discussions sur le forum ne m'aide pas plus que ça.
@Sophie Ménart :
Ben oui, déjà, pourquoi ton blog est-il configuré en mode "query string" (URLs contenant un "?" après "/dotclear/") ? Ton hébergeur ne supporte pas le mode "path info" (qui ne contient pas de "?"), comme je l'utilise ici ?
Je vois que ton installation n'est pas réellement faite "à la racine", mais qu'il semble y avoir une redirection mal foutue (ou une redirection à la place d'une réécriture), puisque si je tape http://www.sophiemenart.info/, je me trouve redirigé sur http://www.sophiemenart.info/dotclear/...
Si tu ne t'en sors vraiment pas, envoie-moi par mail perso :
dotclear" héhé ;-)index.php".htaccesspour faire les réécritures et redirections...et j'essaierai d'y jeter un coup d'oeil.
(Relis le billet ci-dessus, s'il n'est pas clair, n'hésite pas à demander. Je viens d'ailleurs de modifier le billet pour "concentrer" et optimiser un peu les règles et les regexp que j'utilise. Donc ça ne dit plus tout-à-fait la même chose, mais ça fait toujours la même chose, d'une manière un peu améliorée)
Merci Swämi, j'avions point vu ta proposition encore ...
Mon blog est en query string parce que c'est mon hébergeur qui préconise ça et j'ai suivi bêtement ses indications.
Remarque si je mets autre chose, ça ne fonctionne pas ;-)
et oui mon dotclear est dans un répertoire dotclear ... ;-)
et oui j'ai un index.php bricolé, là aussi j'ai suivi les indications trouvé dans le forum de dotclear.
Pas très concluant en effet.
Juste pour dire que c'est pas grave si les billets (autres que ces geekeries auxquelles je n'essaye pas de comprendre quoi que ce soit mais je parcours tout de même pour le simple plaisir de lire ce style si clair et pédagogique ! quelle patience... quel altruisme !) ne sont pas tout rose... Après tout on peut se la jouer bisounours et travailler tes angoisses au Reiki si tu souhaites les partager...
(désolée, je ne sais pas utiliser la syntaxe Wiki simplifiée pour enrichir mes commentaires)