Carnet Wiki

Configurer Alwaysdata pour SPIP

Attention sqlite n’est pas activé par défaut sur les hébergements alwaysdata. Il faut probablement l’installer comme expliqué pour les extensions, plus loin.

À partir de SPIP 4

Le MYSQL de Alwaysdata utilise mariadb 10.6 qui souffre d’un bug qui n’est contourné par SPIP qu’à partir des versions 4.1.5 et 4.2 (ticket SPIP #4342).

Il suffit de créer un fichier config/mes_options.php et d’y insérer :

<?php 
define('_MYSQL_ENGINE', 'InnoDB');

.

Pour les versions de SPIP qui ne sont pas corrigées, une fois les fichiers installés on ne peut pas initialiser les tables de la base de donnée car la création de la table spip_meta provoque une erreur. Il faut patcher le source :
-  ouvrir le fichier ecrire/req/mysql.php,
-  virer la ligne 702 (environ) : celle qui contient
. " ENGINE=MyISAM".

C’est ce que propose également ce patch SPIP.

C’est aussi ce que fait l’installation de SPIP en un clic proposée par Alwaysdata : https://www.alwaysdata.com/fr/marketplace/spip mais attention : ces patchs du noyau seront écrasés lors d’une mise à jour de SPIP et il faudra à nouveau appliquer le patch, faute de quoi vous ne pourrez plus installer de nouveaux plugins lorsque ceux ci doivent créer des tables (et a priori seulement dans ce cas là).

Et c’est aussi ce que proposent (en plus complet et sans problème de mise à jour) les versions versions de SPIP parues après le 20 mai 2022.

À partir de SPIP 4.1

Avec SPIP 4.1, PHP doit disposer de la librairie sodium. C’est le cas par défaut à partir de PHP 7.2 (voir la doc PHP et l’annonce de cette prise en compte)... sauf si l’hébergeur installe un PHP spécialement construit pour ne pas disposer de cette librairie. C’est malheureusement le cas de Alwaysdata, qui, heureusement, fournit un moyen très simple de débrider le PHP proposé en activant les librairies désirées.

La doc générale de alwaysdata sur la gestion des extensions est là : https://help.alwaysdata.com/fr/langages/php/installer-une-extension et il suffit d’en suivre les indications.

En bref, pour installer SPIP 4.1, il faut ajouter la ligne suivante dans le php.ini :

extension=sodium.so

C’est possible de l’y ajouter :
-  lors de la création Alwaysdata du « site » pendant l’étape de configuration ;
-  à tout moment ensuite, en modifiant individuellement la configuration de chacun des sites (la roue crantée à droite depuis https://admin.alwaysdata.com/site/), dans la section Configuration > php.ini personnalisé ;
-  à tout moment ensuite, de façon globale, depuis la page « environnement » dans l’admin Alwaysdata, accessible par la « clé à molette Environnement » dans le menu gauche.

Extension APCU

Il est possible d’activer le cache APCU sur votre compte, ce qui est assez rare pour un hébergement mutualisé.

Comme ce n’est pas une application livrée par défaut par PHP, il faut demander à la compiler et à l’installer avant de l’activer. Alwaysdata fournit un petit script automatique pour cela :
-  connectez vous en SSH, en ligne de commande locale (ou possiblement via la console en ligne sur https://ssh-[nomdevotrecompte].alwaysdata.net pour laquelle il faut avoir préalablement activé la connexion SSH par mot de passe via https://admin.alwaysdata.com/ssh)
-  là, créez un répertoire « extensions » pour y ranger les extensions : mkdir extensions; cd extensions
-  Saisissez la commande ad_install_pecl apcu. Ça télécharge et compile l’extension. À la fin, vérifiez l’adresse du fichier .so généré, qui va servir dans la dernière étape.
-  Via la page « Environnement » dans l’admin Alwaysdata, ajoutez au php.ini la ligne suivante :
extension=extension=/home/[nomdevotrecompte]/extensions/apcu.so
ou bien, si vous avez changé le dossier qui accueille votre session ssh :
extension=/home/[chemindelasession]/extensions/apcu.so

Lorsque APCU est activé, votre site peut bénéficier des plugins memoization et xray, et vous pouvez utiliser les fonctions de cachelab pour vos développements.

JLuc - Mise à jour :2 mai 2023 à 12h51min