Menu

Accueil > Informatique > SPIP 3.1 et Free

SPIP 3.1 et Free

mardi 23 février 2016

Je viens d’effectuer la migration de mon site chez Free sous SPIP 3.1, non sans quelques difficultés...

PHP 5.6

Habituellement, comme la méthode de migration avec spip_loader.php ne fonctionne pas chez Free, je fais les migrations manuellement en téléchargeant les fichiers de la nouvelle version de SPIP par FTP. C’est donc ce que j’ai fait. Malheureusement, cette fois-ci, après téléchargement, le site ne voulait plus fonctionner... Un message m’indiquait qu’un problème technique empêchait d’accéder à la base de données.
Après quelques recherches sur Internet, je me suis aperçu que PHP 5.6 était désormais disponible sur les hébergements perso Free. Très bonne nouvelle !
La nouvelle version 3.1 de SPIP utilise désormais les fonctions mysqli de PHP, et je soupçonne que ce soit en rapport avec le dysfonctionnement constaté (ancienne version de PHP non compatible ???).

Bref, ni une, ni deux, j’ai tout de suite fait la mise à jour de mon fichier .htaccess pour forcer l’utilisation de PHP 5.6 sur mon site. Il suffit pour cela de mettre dans le fichier .htaccess la directive suivante :

php56 1

Et, oh miracle, mon site s’est remis à fonctionner normalement ! J’ai donc pu terminer la migration sous SPIP 3.1.0 et installer mes plugins compatibles avec SPIP 3.1.

Sessions avec PHP

Autre point, en testant la page contact du site, j’ai obtenu des "warnings" concernant les sessions. Là encore, après quelques recherches, je suis tombé sur cette page d’assistance de Free qui indique que pour gérer les sessions avec PHP, il est nécessaire de créer un répertoire sessions à la racine du site.
Une fois le répertoire créé, plus de warnings, super !

Messages

  • Bonjour, Actuellement en phase de conception d’un site web en mode local, je souhaite mettre en ligne le site pour que les personnes de notre association puissent y accéder pour tester les fonctionnalités. Malheureusement, tout comme vous j’installe SPIP V3.1 sur mes pages perso free et lors de l’étape 2 (choix de votre base, après connexion à la base sql), j’ai l’erreur suivante malgré la création du répertoire sessions directement sur la racine :
    Warning : mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/sda/1/6/monsiteperso//ecrire/req/mysql.php on line 244 etc...

    Cordialement

    Jean-Yves

    • Bonjour,

      Est-ce que vous avez mis en place un fichier .htaccess avec la directive que j’indique, pour forcer l’utilisation de PHP 5.6 ? C’est très important pour mysqli.
      Pour ma part, j’ai effectué une migration, donc j’ai mis en place cette directive après coup. Mais pour vous, dans le cas d’une installation, je pense qu’il faudrait mettre en place le fichier .htaccess avec la directive avant de commencer l’installation.

      A titre d’exemple, voici ce que j’ai dans mon fichier .htaccess :

      # Pour interdire de lister les répertoires
      Options All -Indexes
      # Pour forcer l'utilisation de PHP 5.6
      php56 1
      # Pour que SPIP prenne en compte les pages 404
      ErrorDocument 404 /spip.php?page=404

      Bonne journée
      Jean-Yves

    • Bonjour,
      Merci pour la réponse, mais ça n’a pas résolu le problème.
      J’ai tout supprimé puis copié l’ensemble de SPIP 3.1 à la racine de l’arborescence de ma page perso Free. Création du répertoire sessions et du fichier .htaccess comme indiqué. Lorsque je lance l’étape choix de votre base de donnée (choix par défaut) j’ai toujours les mêmes erreurs (Warning : mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/sda/1/6/jeanyves.lenaour/ecrire/req/mysql.php on line 244, etc.....). Avec message

      Installation du système de publication...
      Étape 1 : Connexion à votre base de données
      Étape 2 : Choix de votre base
      Étape 3 : Informations personnelles
      Étape 4 : C’est terminé !

      L’opération a échoué.
      Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.

      Cordialement,
      Jean-Yves

    • Désolé, mais là, je ne vois pas. Et comme je ne peux pas tester de mon côté en faisant une installation neuve (pour mon site, c’était une migration), je ne peux pas vous en dire plus.
      Je viens de faire ma migration en SPIP 3.1.1, la toute nouvelle version, et je n’ai pas eu de problème. Peut-être pourriez-vous l’essayer si ce n’est déjà fait, on ne sait jamais...
      Je vous laisse continuer vos recherches et vos tests.
      Jean-Yves

    • J’avais le même problème. Je l’ai résolu en recopiant les fichiers
      spip/config/chmod.php et
      spip/config/connect.php de mon ancienne installation.

      Contenu du fichier chmod.php :

      <?php
      if (!defined("_ECRIRE_INC_VERSION")) return;
      if (!
      defined('_SPIP_CHMOD')) define('_SPIP_CHMOD'0777);
      ?>

      Contenu du fichier connect.php :

      <?php
      if (!defined("_ECRIRE_INC_VERSION")) return;
      define('_MYSQL_SET_SQL_MODE',true);
      $GLOBALS['spip_connect_version'] = 0.7;
      spip_connect_db('localhost','','mon login Free','mon mot de passe','mon login Free','mysql''spip','');
      ?>

      Créez ces deux fichiers (en remplaçant "mon login Free" et "mon mot de passe" par ce qu’il faut), et envoyez-les par ftp dans le dossier spip/config . Ça résoudra peut-être votre problème.

      V.

    • Pour ma part, c’était dans le cas d’une migration SPIP 3.0 -> SPIP 3.1. Donc les deux fichiers chmod.php et connect.php étaient restés tels quels, je n’y avais pas touché.
      Mais pour en avoir le coeur net, je viens de tester en mettant les syntaxes "standard", celles qu’on obtient en installant un SPIP 3.1 neuf, bien sûr en adaptant avec mes identifiants, et ça fonctionne aussi. Voici les contenus des fichiers :

      chmod.php :

      <?php
      if (!defined("_ECRIRE_INC_VERSION")) return;
      if (!
      defined('_SPIP_CHMOD')) define('_SPIP_CHMOD'0777);
      ?>

      connect.php

      <?php
      if (!defined("_ECRIRE_INC_VERSION")) return;
      defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);
      $GLOBALS['spip_connect_version'] = 0.8;
      spip_connect_db('localhost','','mon login Free','mon mot de passe','ma base de données Free','mysql''spip','utf8');
      ?>

      Normalement, le login Free et la base de données Free sont identiques. Remplacez avec les identifiants propres à votre site (login, mot de passe et base de données).
      Mais là, ce n’est pas un test d’installation neuve, je voulais juste vérifier si les nouvelles syntaxes SPIP 3.1 fonctionnaient aussi, et c’est bien le cas. Si ça peut aider...

  • Bonjour,
    J’ai essayé la version 3.1.1, mêmes erreurs. Je vais tester avec les versions antérieures.
    Cordialement,

    Jean-Yves

  • Bonjour,
    En installant la V3.0, je n’ai aucun problème.
    Cordialement,

    Jean-Yves

  • J’ai exactement le même problème que Naour et je m’y connait bien sur spip. Mais là je bloque depuis quelques jours.

  • Bonjour, En installant la version SPIP V3.0.22 puis mise à jour V3.1.1 tout fonctionne normalement. Impossible d’utiliser directement la version V3.1.1.
    Cordialement,

    Jean-Yves

  • Bonjour,

    merci pour le .htaccess qui n’a pas suffit par contre. J’ai en effet eu le même souci des warning ...

    Le problème venait que mon site est eric.berthomier.free.fr et la base de données se nomme maintenant eric_berthomier.free.fr

    Solution trouvée : faire la migration local, tout balancer et créer le fichier connect.php en conséquence.

    Ouf, je me sentais un peu isolé sans mon site aide mémoire.

    Encore MERCI

  • Aprés mise a jour spip 3.0 -> 3.1 chez free problème
    "Site en travaux Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension."
    Le truc Php56 1 dans le .htaccess a résolu le problème
    Merci beaucoup
    JF

  • salut,

    je croyais avoir réussi -je ne sais pas trop comment, en faisant un peu ce qui est dit ici- a installer et faire marcher un site en 3.1.1. Hélas, impossible de créer des nouveaux articles, un bandeau erreur apparaît lorsqu’on fait enregistrer... et rien d’autre.
    Bizarre, on peu quand même modifier les articles existants.
    Cordialement, Alberto

    • Bonjour,
      Désolé pour le délai...
      Vous m’avez mis le doute concernant la création d’article. Du coup, je viens d’essayer et pas de soucis (version actuelle 3.1.3 que je vais passer en 3.1.4 très rapidement).
      J’espère que vous avez résolu votre problème depuis votre message. Bonne continuation.
      Jean-Yves

  • Bonjour,
    les manipulations décrites ci-dessus (.htaccess, chmod.php et connect.php) marchent aussi pour une migration vers spip 3.2. Merci !
    Thierry

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.