Problèmes Rencontrés - ThinkStoryAdmin/think_story GitHub Wiki

Ce page est consacré à décrire les problèmes rencontrés lors de développement ou le déploiement. Il est ici afin d'aider des utilisateurs / développeurs futurs.

Problèmes rencontrés lors du développement

Développement de l'attribut timbre

Il se peut que les attributs développés ne s'installent pas correctement dans un package. La source de ce problème peut être que votre version de C5 minimum n'est pas assez haut (8+) (https://www.concrete5.org/community/forums/customizing_c5/package-attribute-not-installing-orm/#979486).

Développement du block impression en PDF

Le package MPDF qui est utilisé pour créer un PDF... . Cependant il a semblé que mPDF n'accepte pas des URLs comme la source des images, donc il y a eu un essai en créant un document temporaire qui contenait l'image. Un problème avec l'accès aux fichiers de Concrete5 depuis CURL ou autre chose n'est pas possible (même si ca l'est depuis un navigateur), donc cette solution n'a pas marché.

Cependant, le path au ressource physique du fichier est utilisable. Documentation Admin mis à jour pour refléter cet exigence.



Une erreure de ce type:

Mpdf\MpdfException thrown with message "Temporary files directory "/var/www/html/concrete5/public/packages/think_story/vendor/mpdf/mpdf/src/Config/../../tmp" is not writable"

Est reglable en faisant le suivant: Changer mod a 777 Définir le dossier temporaire explicitement

new Mpdf([... ,'tempDir' => __DIR__ . '/custom/temp/dir/path']);

Si le problème survient encore, il faut probablement simplement relancer le serveur.

Développement du Thème Think Story

Si les modifications dans defaults ou content.less, ou dans un des presets n'apparaissent pas, il faut aller dans Design -> Customize -> Reset Customizations. Vous ne pourriez pas rapidement développer chaque preset, puisque lorsque vous choississez un des presets, Concrete va sauvegarder toutes les attributs. Il faut donc faire le développement SEULEMENT dans le defaults.less après avoir faire le "Reset Customizations".

Problèmes rencontrés lors du pré-déploiement

Le premier test fut sur l'installation de Concrete5 sur un Raspberry Pi. Cependant, le Raspberry Pi 3B/3B+ qui ont été utilisés n'ont pas eu le RAM nécessaire pour installer le projet Concrete5 avec Composer.

Debian : "release file for buster not yet valid". Reglée par changement de la date et l'heure du systeme.

Après l'installation de Concrete5:

Si vous rencontrez un erreur du type: "concrete5 could not find driver pdo"

Il faut simplement relancer Apache

Si vous rencontrez un erreur du type: "concrete5 could not delete a proxy file"

Alors il faut donner accès au serveur aux fichiers de votre site avec: sudo chown -R www-data:www-data /var/www/html/votre-site

sudo chmod -R 775 /var/www/html/votre-site

Erreur de type : "Failed to create cache path", réglé en changeant les permissions avec chmod.

Si vous avez une érreure similaire à : https://github.com/concrete5/composer/issues/34, alors il faut que vous éditez le composer.json, en ajoutant "doctrine/dbal": "2.10.x" dans la section require. Ensuite, exécutez la commande: composer update. Vous devriez pouvoir ré-éxécuter la commande ./concrete/bin/concrete5 c5:install -i sans problèmes.

Supression du séction de langue crée par défaut

La section anglais du site a été enlevé. La langue par défaut était la section française. Cependant, après la suppression de la section anglaise, la page Page Report ne fonctionnait plus. Il a fallut nettoyer le cache.

Cependant, il est devenue impossible d'ajouter des pages après:

An exception occurred while executing 'insert into Pages (cID, siteTreeID, ptID, cParentID, uID, cInheritPermissionsFrom, cOverrideTemplatePermissions, cInheritPermissionsFromCID, cDisplayOrder, pkgID, cIsActive, cIsDraft) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [382, null, "5", null, "1", "TEMPLATE", null, 179, 0, 0, 0, 1]:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'cParentID' cannot be null

Il semble que ceci est un bug qui existe depuis des années, et il semble même qu'il n'est pas possible de même changer la section de défaut sans casser tout le site. Mis dans la documentation administrateur.

Semble être la même que celui-ci; https://www.concrete5.org/developers/bugs/8-5-0/multilingual-setup-leads-to-an-error-on-page-insert-from-root/.

Donc le bug n'a pas été résolue même si les développeurs de C5 l'ont manqué comme résolue. Pour le moment je considère que le changement de séction de langue défaut ou la suppresion du locale qui a été crée lors de l'installation ne sont pas possibles.

Importation des données dans le package avec CIF

Lors de la sélection des pages à exporter, on a seulement le choix des pages qui sont sur la site du langue défaut. Il faut alors aller dans Multilingual Setup, et changer la locale par défaut pour avoir le choix des pages d'autres langues. Cependant il ne semble pas que les liens entre ces pages sont gardés.



Pour inclure des layouts remplis dans un thème (pas seulement des Areas dans un page), la documentation officiel de Concrete5 Le package officiel "Migration Tool"... Cependant, lors de l'export, "Migration Tool" export toute l'historique de la page, qui inclut des éléments qui n'existent plus, ce qui cause des erreurs.

Il faut donc parcourir le fichier exporté pour faire sur qu'il n'y a pas de références à des éléments null.

Il faut aussi faire sûr d'avoir exporté tous les éléments nécessaires: Attribute Sets, Attribute Keys, Type de Pages.



Lors de l'installation des pages exportés en CIF, et la désinstallation du package, il est devenue impossible de charger les pages (même si le package était réinstallé):

Argument 1 passed to Concrete\Core\Http\ResponseFactory::controller() must be an instance of Concrete\Core\Controller\Controller, null given, called in /var/www/html/concrete5/public/concrete/src/Http/ResponseFactory.php on line 362

Ceci est assez bizarre puisqu'il était possible de désinstaller le package plusieurs fois et de le réinstaller avant que ce problème apparaisse.

Je pense que la source de ce problème vient du fait que j'avais pas changé le handle du type de page de défaut (page) lorsque j'ai exporté le contenu, et quand je l'ai lié au package ce type de défaut a été supprimé, ce qui a causé les erreurs.



Pour l'installation du contenu CIF, une méthode proposé par la documentation officiel ne marche pas pour tout:

            $ci = new ContentImporter();
            $ci->importContentFile($this->getPackagePath() . '/install/content_pagetypes.xml');

Lors de l'installation du type de page scénario, la forme composer produisait des erreurs de type attributeKeyID called on Null. J'ai pu trouver que ceci se produisait à cause des éléments dans la forme composer qui faisaient référence à des attributs dont j'avais crée.

Il faut utiliser la méthode proposé par un tutoriel:

            $this->installContentFile('/install/content_pagetypes.xml');



Lors du changement du template du page d'accueil à celui de Think Story, l'erreur suivant c'est produit:

An exception occurred while executing 'insert into CollectionVersions (cID, cvID, pTemplateID, cvName, cvHandle, cvDescription, cvDatePublic, cvDateCreated, cvComments, cvAuthorUID, cvIsApproved, cvIsNew, pThemeID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["268", 1, 0, "Carousel", "carousel", null, "2020-05-23 12:20:44", "2020-05-23 12:20:44", "Initial Version", -1, 1, 0, "15"]: SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'cvAuthorUID' at row 1

Cependant lors du troisième coup, il a marché.

Problème de Chargement des Pages

Si les pages n'arrive pas à se charger (localhost couldn't serve ou quelquechose de ce genre), il faut regarder les logs d'apache.

Si dans le log il y a plein de segmentation fault dernièrements, ce qui a résolut la problème pour moi c'était de simplement faire un reboot.

Intégration Matomo

Si vous arrivez sur la page web pour faire l'installation (donc ici: https://matomo.org/docs/installation/#the-5-minute-matomo-installation), et qu'il n'y a pas de styles sur les pages ou que vous avez l'erreur "Could not load scripts" en bas du page, il faut regarder dans la console (Inspect -> Console). Si vous avez des erreurs comme ERR_BLOCKED_BY_CLIENT, il faut simplement désactiver votre Ad Blocker pour ce site.

Il est recommandé d'avoir un nouveau utilisateur dans la BD. Si lors de la création des tables / login SQL vous rencontrez des erreurs de genre "peut pas se connecter" ou "cet utilisateur n'a pas accès", créer un nouveau utilisateurs avec les droits d'écriture à la BD Matomo que vous avez crée.

Problèmes rencontrés lors du déploiement

Problèmes d'exportation des données

Un mysql dump a été très difficile de trouver pour think data à cause de sa configuration (moitié chez Infomaniak).

Un script en PHP avec un exec a été fait, mais ne peut pas être exécuté car la configuration du serveur n'est pas facilement modifiable. Ce script a été mis dans web/index.php entre les lignes :

$thelan = "fr";

if(isset($_GET['lan'])){

Le code pour exécuter le dump était (les {} ne sont pas mises parce qu'elles contient des données sensibles):

exec("mysqldump --user={$user} --password={$pass} --host={$host} {$database} --result-file={$dir} 2>&1", $output);

En plus, il y a des problèmes lors du désérialisation des attributs textuelles des scénarios. Il semble qu'il y a peut-être des erreurs dans la sérialisation du côté PHP du logiciel actuelle, mais il y a surtout pas d'outil simple qui permet de l'utiliser (j'ai essayé avec au moins 4 convertisseurs en ligne de SQL à JSON).

Pour ces raisons, seulement les tables qui décrivent les liens entre les catégories et les scénarios seront utilisés, et l'extraction de contenu des scénarios se fera par un scrapper HTML en Python. Une petite outil CLI en Node JS sera construit pour parser les deux fichiers ensemble.

Problèmes de traduction

Après avoir fait Dashboard -> Systems & Settings -> Translate Site Interface -> Reload Strings, le site a complétement crashé.

Il a fallut relancer le serveur, ensuite refaire la même action, pour résoudre le problème.

Contrairement à la doc, la fonction tc() ne marche pas comme t() (ou la doc de t() n'est pas exhaustif). tc() peut prendre un variable non-constant comme string à traduire.

Problèmes d'installation chez Infomaniak

L'importation des éléments suivants ne marche pas toujours:

  • Express Entities (Topic Color) are not imported
  • Not all block configs are saved

Problèmes de déploiement à l'UniGe

MySQL

Après un erreure de mysql_secure_installation, et une déinstallation de MySQL / MariaDB, il a été impossible de ré-installer SQL, même avec mysql_install_db.

Il a été trouvé que SQL n'a pas été bien désinstallé, et que Debian l'avait toujours listé comme une application tournante sur la port 3306. Il a donc fallut tuer le processus avec kill. Après avoir fait cela, l'installation de MariaDB a pu être fait sans problème.

Migration thinkdata.ch

1: Page Blanche: aucune page chargeait. Il a fallut faire chmod.

2: SessionHandler::read(): open(/home/clients/[random string]/web/tmp/[random string], O_RDWR) failed: No such file or directory (2)

Cette problème très bizzare est de la faute d'infomaniak. Infomaniak a changé deux fichiers:

  • index.php et
  • /concrete/src/Session/Storage/Handler/NativeFileSessionHandler.php

La ligne suivante a été ajouté:

ini_set('session.save_handler', 'files'); ini_set('session.save_path', '/path/to/dir');return;

Dans le index.php, cette ligne n'est pas supposé d'exister, et dans NativeFileSessionHandler,php, il doit être:

ini_set('session.save_handler', 'files');
⚠️ **GitHub.com Fallback** ⚠️