Installer dotclear sur un serveur windows IIS


Quand j’ai découvert dotclear il y a quelques temps, je me suis dit « chouette je me fais un blog, ça a l’air très bien ce truc. »

Seulement, pour des raisons professionnelles, mon hébergement est sous serveur Microsoft IIS.

L’installation ne fonctionnant pas en automatique, j’ai dû alors bidouiller à droite et à gauche, aidé en cela par la très sympathique communauté des forums dotclear, spéciale dédicace à Kozlika.

L’article d’origine se trouve à cette adresse sur le forum de Dotclear.

Passons à l’essentiel, l’installation.

Bon alors, pour installer dotclear sous IIS :

  1. Brancher ses neurones et retrousser ses manches.
  2. Vérifier que votre hébergeur propose les version PHP et MYSQL nécessaires au bon fonctionnement de dotclear.
  3. Télécharger dotclear, dézippez le.
  4. Demander si nécessaire à votre hébergeur de vous créer vote base mysql et récupérez les données importantes.

* Adresse de la base

  • nom de la base
  • utilisateur
  • mot de passe

On va commencer avant toute chose par créer la structure de la base.

  1. Connectez vous a votre interface PHPmyadmin.
  2. Sélectionnez dans le cadre de gauche la base dans laquelle vous allez intégrer les tables de dotclear.
  3. Une fois la base sélectionnée.

* Soit vous utilisez le lien en bas du cadre de gauche pour lancer la fenêtre SQL.

  • Soit l’onglet SQL de la page de description du contenu de votre base.

Un formulaire permettant d’entrer une requête SQL est alors accessible.

Voici les requêtes à exécuter : (elles se trouvent dans le fichier db_create.xml du repertoire install)

  
   CREATE TABLE `dc_user` (
   `user_id` varchar(32) binary NOT NULL default '',
   `user_level` int(11) NOT NULL default '0',
   `user_pwd` varchar(32) binary NOT NULL default '',
   `user_nom` varchar(255) binary default NULL,
   `user_prenom` varchar(255) binary default NULL,
   `user_pseudo` varchar(255) binary default NULL,
   `user_email` varchar(255) default NULL,
   `user_post_format` varchar(5) NOT NULL default 'wiki',
   `user_edit_size` int(11) NOT NULL default '10',
   `user_pref_cat` int(11) default NULL,
   `user_lang` char(3) default NULL,
   `user_delta` int(1) NOT NULL default '0',
   `user_post_pub` int(1) NOT NULL default '0',
   PRIMARY KEY  (`user_id`)
   ) ENGINE=MyISAM
  
   CREATE TABLE `dc_categorie` (
   `cat_id` int(11) NOT NULL auto_increment,
   `cat_libelle` varchar(255) NOT NULL default '',
   `cat_desc` longtext,
   `cat_libelle_url` varchar(255) NOT NULL default '',
   `cat_ord` int(11) default NULL,
   PRIMARY KEY  (`cat_id`),
   UNIQUE KEY `cat_libelle_url` (`cat_libelle_url`),
   UNIQUE KEY `cat_libelle` (`cat_libelle`)
   ) TYPE=MyISAM
  
   CREATE TABLE `dc_post` (
   `post_id` int(11) NOT NULL auto_increment,
   `user_id` varchar(32) binary NOT NULL default '',
   `cat_id` int(11) default NULL,
   `post_dt` datetime default NULL,
   `post_creadt` datetime default NULL,
   `post_upddt` datetime default NULL,
   `post_titre` varchar(255) default NULL,
   `post_titre_url` varchar(255) default NULL,
   `post_chapo` longtext,
   `post_chapo_wiki` longtext,
   `post_content` longtext,
   `post_content_wiki` longtext,
   `post_notes` longtext,
   `post_pub` int(1) NOT NULL default '0',
   `post_selected` int(1) NOT NULL default '0',
   `post_open_comment` int(1) NOT NULL default '0',
   `post_open_tb` int(1) NOT NULL default '0',
   `nb_comment` int(11) NOT NULL default '0',
   `nb_trackback` int(11) NOT NULL default '0',
   `post_lang` varchar(5) default NULL,
   PRIMARY KEY  (`post_id`)
   ) TYPE=MyISAM
  
   CREATE TABLE `dc_comment` (
   `comment_id` int(11) NOT NULL auto_increment,
   `post_id` int(11) NOT NULL default '0',
   `comment_dt` datetime default NULL,
   `comment_upddt` datetime default NULL,
   `comment_auteur` varchar(255) default NULL,
   `comment_email` varchar(255) default NULL,
   `comment_site` varchar(255) default NULL,
   `comment_content` longtext,
   `comment_ip` varchar(15) default NULL,
   `comment_pub` int(1) default '0',
   `comment_trackback` int(1) NOT NULL default '0',
   PRIMARY KEY  (`comment_id`)
   ) TYPE=MyISAM
   CREATE TABLE `dc_ping` (
   `ping_id` int(11) NOT NULL auto_increment,
   `post_id` int(11) NOT NULL default '0',
   `ping_url` varchar(255) NOT NULL default '0',
   `ping_dt` datetime default NULL,
   PRIMARY KEY  (`ping_id`)
   ) TYPE=MyISAM
   CREATE TABLE `dc_log` (
   `user_id` varchar(32) binary NOT NULL default '',
   `table` varchar(255) NOT NULL default '',
   `key` varchar(255) NOT NULL default '',
   `date` datetime NOT NULL default '0000-00-00 00:00:00',
   `ip` varchar(15) default NULL,
   `log` varchar(255) NOT NULL default ''
   ) TYPE=MyISAM
   CREATE TABLE `dc_link` (
   `link_id` int(11) NOT NULL auto_increment,
   `href` varchar(255) NOT NULL default '',
   `label` varchar(255) NOT NULL default '',
   `title` varchar(255) NOT NULL default '',
   `lang` char(2) NOT NULL default '',
   `rel` varchar(255) default NULL,
   `position` int(11) NOT NULL default '0',
   PRIMARY KEY  (`link_id`)
   ) TYPE=MyISAM
   CREATE TABLE `dc_session` (
   `ses_id` varchar(32) NOT NULL default '',
   `ses_time` int(11) NOT NULL default '0',
   `ses_start` int(11) NOT NULL default '0',
   `ses_value` text NOT NULL,
   PRIMARY KEY  (`ses_id`)
   ) TYPE=MyISAM

Je n’ai pas exécuté les requêtes des :
<! FULLTEXT KEYS >

   SELECT REPLACE(VERSION(),'-log','') >= '3.23.23' (fonction de la version mysql non?)
   ALTER TABLE `PREFIXpost` ADD FULLTEXT `full_post_titre` (`post_titre`)
   SELECT REPLACE(VERSION(),'-log','') >= '3.23.23'
   ALTER TABLE `PREFIXpost` ADD FULLTEXT `full_post_content` (`post_content`)
   SELECT REPLACE(VERSION(),'-log','') >= '3.23.23'
   ALTER TABLE `PREFIXpost` ADD FULLTEXT `full_post_chapo` (`post_chapo`)

<! FIRST CATEGORY >

 INSERT INTO `PREFIXcategorie`
 (`cat_id`, `cat_libelle`, `cat_libelle_url`, `cat_ord`) VALUES
 (1, 'General', 'General', 0)

et

<!–
INDEXES

 ======================================================

–>

   ALTER TABLE `PREFIXpost` ADD INDEX `fk_post_categorie` (`cat_id`,`post_pub`)
   ALTER TABLE `PREFIXpost` ADD INDEX `fk_post_user` (`user_id`,`post_pub`)
   ALTER TABLE `PREFIXcomment` ADD INDEX `fk_comment_post` (`post_id`)
   ALTER TABLE `PREFIXping` ADD INDEX `fk_ping_post` (`post_id`)

Ni les requêtes du document db_upgrade.xml qui se retrouvent également dans le répertoire install de dotclear.
Si un gentil administrateur ou codeur dit que c’est obligatoire, n’hésitez pas à le faire. :)

Suite de la manip :
Créer un compte administrateur.

Une fois que vous aurez créé vos tables, elles apparaissent dans le cadre gauche de votre phpmyadmin, cliquez sur la table dc_user.
Par défaut elle apparaît en mode structure.
Cliquez sur l’onglet « Insérer » de la page d’affichage.
Et entrez vos coordonnées d’administrateur dans les champs valeur.

IMPORTANT :
dans le champs user_level mettez 9 (code administrateur)
pour le champs user_pwd mettez votre mdp encodé :

  • Allez à cette page (sans quitter le phpmyadmin hein) : http://scriptserver.mainframe8.com/md5.php
  • rentrez votre mdp dans le champ et cliquez sur « encode »
  • copiez la suite de chiffre et de lettres qui apparaissant sous le formulaire.
  • collez dans le champs user_pwd

Retournez sur votre interface phpmyadmin, cliquez sur le bouton exécuter.

Wala normalement votre base est prête.

Revenons a dotclear.

Allez dans le répertoire /conf
ouvrez le fichier config.php.in (si vous n’avez pas de bon éditeur html ou teste utilisez wordpad, il le fait très bien ^^)

Cherchez ces lignes :

  1. Utilisateur MySQL

define(‘DB_USER’,’test’);

  1. Mot de passe MySQL

define(‘DB_PASS’,’test’);

  1. Nom de machine MySQL (généralement localhost)

define(‘DB_HOST’,’test’);

  1. Nom de la base de données

define(‘DB_DBASE’,’test’);

  1. Préfixe à ajouter devant le nom de chaque table

define(‘DB_PREFIX’,’dc_’);

Remplacez les test par les données d’accès à votre base fournies par votre hébergeur.
J’ai laissé la partie préfixe bien que dans le cas d’une seule base avec un seul dotclear ce ne soit pas nécessaire. (à me confirmer)

Réenregistrez le fichier modifié dans le répertoire /conf mais au format .php (retirez le .in à la fin)

Faites pareil pour le fichier dotclear.ini.in.
Personnellement je ne l’ai pas modifié, juste réenregistré au format .ini en retirant le .in à la fin.

Publiez votre répertoire /dotclear chez votre hébergeur.

En ligne allez sur http://monadresse.com/dotclear/ecrire/idex.php (remplacez monadresse.com par l’adresse de votre site) et commencez à créer votre blog.

Bon voila, ça a marché pour moi, j’espère ne pas avoir dit de trop grosses bêtises, au cas où n’hésitez pas à rajouter des choses (si c’est possible d’éditer le message c’est aussi bien).

Bon blog à vous.
Aymeric