Installation de Dotclear 2 beta 6 sur l'hébergeur Celeonet
8 avril 2007
Ce billet décrit l'installation de Dotclear 2 version beta 6 sur l'offre mutualisée CeleoTurbo de l'hébergeur Celeonet. Cette offre obéit aux caractéristiques techniques minimales pour l'installation du logiciel.
Préambule
Après vous être connecté dans votre espace client sur Celeonet, onglet Général, vous aurez accès aux informations concernant les codes d'accès FTP et les paramètres de la base de données.
Préparation de l'environnement
Si vous ne disposez pas déjà d'une base de données MySQL, créez-en une via l'onglet MySQL , puis Création d'une base.
Vous devez également permettre l'exécution de PHP 5 sur votre espace : dans l'onglet Domaine, puis Gérer les sous-domaines et les versions php4/php5, vérifier que vous utilisez bien la bonne version.
Enfin, déposez l'archive décompressée de Dotclear2 dans le répertoire www du compte FTP (il est possible d'envoyer l'archive via l'onglet FTP, puis webftp mais la décompression n'est pas complète : cela est dû au temps d'exécution limité à 30 secondes).
Vous êtes maintenant prêts pour l'installation. Deux méthodes sont possibles : soit vous vous laissez guider par l'assistant, soit vous remplissez le fichier de configuration. Je décrirais les deux méthodes, mais je n'ai utilisé que la première.
Installation avec l'assistant
Il suffit de vous rendre sur http://url-mon-dotclear/admin/install/. Un message vous avertit que vous n'avez pas de fichier de configuration et vous propose de vous rendre sur l'assistant wizard. Cliquez sur le lien.
Un formulaire apparaît et vous demande certains renseignement de configuration :
- Type de base de données
- Nom d'hôte de la base de données : nom de l'hôte de la base
- Nom de la base de données
- Nom d'utilisateur de la base de données
- Mot de passe de la base de données
- Préfixe des tables de la base de données
Validez le formulaire, le programme vérifie que les conditions d'installation de Dotclear sont remplies et vous amène directement à la fin de l'installation. Rendez vous de nouveau sur la page http://url-mon-dotclear/dotclear/admin/install et répondre aux questions posées.
TODO : avec cette méthode, les lignes concernant le PATH_INFO ne sont pas décommentées dans le fichier config.php. Je ne sais pas si cela pose un problème pour la suite.
Fichier de configuration
Vous devez renommer le fichier inc/config.php.in en inc/config.php, puis le remplir avec les indications concernant votre base fournies par Celeonet.
Ce fichier configure l'accès à la base de données.
<?php
# ***** BEGIN LICENSE BLOCK *****
# This file is part of DotClear.
# Copyright (c) 2005 Olivier Meunier. All rights
# reserved.
#
# DotClear is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# DotClear is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with DotClear; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# ***** END LICENSE BLOCK *****
// Database driver (mysql, pgsql, sqlite)
define('DC_DBDRIVER','mysql');
// Database hostname (usually "localhost")
define('DC_DBHOST','NOM DU SERVEUR DE LA BASE DE DONNÉES');
// Database user
define('DC_DBUSER','NOM D'UTILISATEUR');
// Database password
define('DC_DBPASSWORD','MOT DE PASSE');
// Database name
define('DC_DBNAME','NOM DE LA BASE DE DONNÉES');
// Crypt key (password storage)
define('DC_MASTER_KEY','CHANGER CECI IMPÉRATIVEMENT');
// Admin URL. You need to set it for some features.
define('DC_ADMIN_URL','URL COMPLÈTE VERS RÉPERTOIRE ADMIN');
// Cookie's name
define('DC_SESSION_NAME','dcxd');
// Plugins root
define('DC_PLUGINS_ROOT',dirname(__FILE__).'/../plugins');
// Template cache directory
define('DC_TPL_CACHE',dirname(__FILE__).'/../cache');
// If you have PATH_INFO issue, uncomment following lines
//if (!isset($_SERVER['ORIG_PATH_INFO'])) {
// $_SERVER['ORIG_PATH_INFO'] = '';
//}
//$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
?>
Multiblog
J'ai choisi de séparer l'application de mes données personnelles : ainsi, en cas de mise à jour, seul le répertoire dotclear est modifié. La méthode utilisée et décrite ici s'inspire de la documentation de dcTips() et de l'installation multiblog (documentation officielle en cours d'écriture).
Création des répertoires
Sur l'espace web, on va créer un nouveau répertoire, ici journal, dans lequel on place deux nouveaux répertoires pour les données personnelles, public et themes. Dans ce dernier, on copie le répertoire /themes/default/ de /dotclear/. On a donc à la racine de l'espace web :
- dotclear (l'installation de base)
- ...
- public
- themes
- default
- ...
- journal
- public
- themes
- default (copie de l'installation de base)
- zulio (ma feuille de style personnelle)
- index.php
Pour chaque nouveau blog créé, on place un fichier index.php qui aura le contenu suivant :
<?php
define('DC_BLOG_ID','journal'); #identifiant du blog
require dirname(__FILE__).'/../dotclear/inc/public/prepend.php';
?>
en remplaçant la variable DC_BLOG_ID par l'identifiant du carnet que l'on aura choisi.
Modifier le fichier de dc
Création des carnets
À partir de l'interface d'administration de Dotclear, rubrique Blogs, création d'un nouveau carnet dont l'identifiant doit être identique au nom du répertoire précédemment créé. Dans mon cas, on a :
- identifiant du carnet : journal
- titre du carnet : Varia
- URL du carnet : http://zulio.org/journal/index.php/
- Méthode de lecture de l'URL : PATH_INFO
Il faut maintenant indiquer les chemins des répertoires /public/ et /themes/ en modifiant les valeurs suivantes dans about:config :
- public_path : ../journal/public
- public_url : /journal/public
- themes_path : ../journal/themes
- themes_url : /journal/themes
Comme je ne me servirai pas de dotclear comme d'un carnet, je le mets hors-ligne.
Je définis le carnet /journal/ comme carnet par défaut.
Réécriture
La réécriture des URL n'est pas uniquement qu'une opération cosmétique si, dans le cas où, comme moi, vous mettez à jour votre carnet à partir d'une version antérieure. Pour supprimer index.php dans l'URL, il faut placer un fichier .htaccess à la racine du carnet (ici, dans le répertoire /journal/) :
# AVERTISSEMENT : ce fichier fonctionne en l'état mais il demande à être vérifier auprès de l'hébergeur
#
# Le serveur est autorisé à suivre les liens symboliques dans ce répertoire : utile sur un hébergement mutualisé ?
Options +FollowSymlinks
# Activation du module de réécriture
RewriteEngine On
# Réécriture des URL
# Pas de réécriture si le fichier (-f, file), le dossier (-d, directory) ou le lien -l, link) demandés existent :
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
# Réécriture de http://example.org/AAAA/MM/JJ en http://example.org/post/AAAA/MM/JJ/
RewriteRule ^([0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9a-z\-]+)$ post/$1 [NC,L,R=301]
# Pour des URL sympas avec DotClear 2
RewriteBase /journal/
# On enlève index.php de l'adresse
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
RewriteRule ^index.php$ index.php/
- toujours si vous venez d'une version antérieure, pensez à mettre à jour les flux RSS en redirigeant les anciens flux vers les nouveaux. Ces deux nouvelles règles dans le fichier
.htaccessferont l'affaire :
Redirect permanent /rss.php http://www.example.org/journal/feed/rss2 Redirect permanent /atom.php http://www.example.org/journal/feed/atom
- l'utilisation des mots-clés
- les numéros de billets apparaissent lors de l'export voir l'extension dc1redirect en développement devrait remédier à ce problème.
- problème de droit lorsque l'on charge un fichier à partir du Gestionnaire de média
(à suivre)

Commentaires
Bravo pour la mise à jour, et merci d'essuyer les plâtres et de nous en faire part! J'ai pas mal de liens internes dans mon blog, et le passage sous dotclear 2 me fait trembler parce que j'ai cru comprendre qu'ils ne seraient pas préservés...
Les liens ne sont pour l'instant pas préservés, parce que la forme des liens a changé : dans dc2, le numéro du billet n'est plus utilisé et
/post/fait son apparition dans le lien. Il faut alors passé par une réécriture (quand l'hébergeur le permet). De plus, lors de l'importation des billets de dc1 dans dc2, le numéro du billet est maintenu (ou alors j'ai raté une manipulation). Tout cassé ! Une extension est en cours de développement pour pallier à ces problèmes de réécriture (il faut que je complète mon billet à ce sujet d'ailleurs).Ceci dit, ce n'est que l'une des version beta, bien avancée quand même (je sens que la gestion anti-pourriels, avec possibilité de liste blanche, va te plaire) et il reste encore les versions canditates à la version finale. D'ailleurs, si tu veux tester, je peux t'installer un compte privé - mais la semaine prochaine seulement, parce que j'ai un long week-end qui s'annonce.
Bon, tu as l'air calé alors je tente ma chance ! J'ai acheté un nom de domaine (toutesecolo) chez mon hebergeur (celeonet) et je ne sais pas comment afficher mon url (toutesecolo.com) à la place de l'url de mon blog sur dotclear2(http://arbon2.celeonet.fr/dotclear/...). Est-ce que tu sais comment faire, je cherche partout la solution ! Merci pour la réponse...
Bonjour Laeti,
apparemment les DNS sont bons puisque http://toutesecolo.com/ et http://arbon2.celeonet.fr/dotclear/ pointent vers le même espace. Vérifie dans l'onglet Domaine de ton interface client Celeonet, les noms de domaines actifs : normalement, tu dois y trouver toutesecolo.com.
Par contre, tu ne dois pas utiliser ton adresse Celeonet dans la configuration de Dotclear si tu veux que seule l'adresse que tu as acheté apparaisse. Dans le Tableau de bord de l'interface de Dotclear, tu vérifies dans Paramètres du blog que
Tu peux aller voir la documentation sur ce point.