N’ayant pas envie de me faire bloquer par une simple erreur je me suis mis à fouiller le code pour en trouver l’origine.
En fait si vous auriez remarqués, dans le dossier /tmp/ l’installation créer un fichier mysql.log. Et dans ce fichier là vous auriez remarqués
Jun 18 11:15:03 127.0.0.1 (pid 3404) - CREATE TABLE IF NOT EXISTS spip_meta (
nom VARCHAR (255) NOT NULL,
valeur text DEFAULT '',
impt ENUM('non', 'oui') DEFAULT 'oui' NOT NULL,
maj TIMESTAMP,
PRIMARY KEY (nom))
Jun 18 11:15:03 127.0.0.1 (pid 3404) 1101 BLOB/TEXT column 'valeur' can't have a default value
CEPENDANT, après avoir ’réglé’ ceci j’ai aussi remarqué qu’il y avait d’autres erreurs du genre (une attribution d’une valeur par défaut pour du text), vous devrez donc ouvrir le fichier ecrire/base/auxiliaires.php et trouver les variables
$spip_meta
"valeur" => "text DEFAULT ''",
n’étant pas bon remplacer-le par
"valeur" => "text ",
$spip_versions
Trouver la ligne
"titre_version" => "text DEFAULT '' NOT NULL",
pour la changer en
"titre_version" => "text NOT NULL",
puis ouvrez le fichier ecrire/base/serial.php pour trouver la variable
$spip_syndic_articles
"url_source" => "TINYTEXT DEFAULT '' NOT NULL",
"source" => "TINYTEXT DEFAULT '' NOT NULL",
"tags" => "TEXT DEFAULT '' NOT NULL");
doit être remplacé par
"url_source" => "TINYTEXT NOT NULL",
"source" => "TINYTEXT NOT NULL",
"tags" => "TEXT NOT NULL");
cependant ce n’est pas fini ! La création du compte administrateur va échoué (bien qu’aucune erreur pendant l’installation vous arrêtera...) cette fois si c’est la colomne ’bio’ dans la table spip_auteurs qui vous indiques qu’elle ne peut pas avoir de valeur par défaut, cependant si vous continuez de chercher vous voyez que les inscriptions pour les autres utilisateurs risque aussi de planter puisqu’il utilise sensiblement la même requête.
La meilleur méthode (selon moi) est de modiffier la requête MySQL et non pas de changer les colomnes problématique en acceptant la valeur ’NULL’ par défaut.
Pour ce faire vous devez ouvrir le fichier ecrire/install/etape_6.php, rendez vous à la ligne 82 où vous trouverez
spip_query("INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES(" . _q($nom) . "," . _q($email) . "," . _q($login) . ",'$mdpass','$htpass',FLOOR(32000*RAND()),'0minirezo')");
pour le remplacer par
spip_query("INSERT INTO spip_auteurs (nom, bio, email, nom_site, url_site, login, pass, low_sec, statut, pgp, htpass, imessage, messagerie, alea_actuel, alea_futur, prefs, cookie_oubli, lang, idx, url_propre) VALUES(" . _q($nom) . ", '', " . _q($email) . ", '', '', " . _q($login) . ", '$mdpass', '', '0minirezo', '', '$htpass', '', '', '', FLOOR(32000*RAND()), '', '', '', '', '')");
Puisque je n’ai pas le temps voilà comment ’réglé’ le problème de l’installation, cependant comme dit plus haut, la création de compte pour le public (et depuis l’interface d’administration) risque de ne pas fonctionner puisqu’il utilise le même genre de requête (trop courte) que celle utilisé dans l’installation de script. Il ne serait pas non plus surprenant que d’autres fonctions ne fonctionne pas pour les mêmes raisons (requête MySQL trop courte).