Page blanche OPAC suite réinstallation

Bonjour,

Je vous contacte car j'ai tenté de réinstaller un PMB 7.4.3 en réinjectant une sauvegarde issue d'une autre installation (sur une url différente mais dans la même version).

La partie administrateur fonctionne mais j'ai une page blanche sur l'url opac_css.

J'ai tenté de vider les caches, contrôler des paramètres dans les paramètres.

Quelle est la procédure à suivre pour résoudre ce problème et éliminer petit à petit des pistes ?

Je n'ai pas l'impression d'avoir d'erreur PHP.

J'ai mis un peu le nez dans le php juste pour voir si le code du index.php était bien exécuté et aussi les require_once.

Je ne sais plus trop ou chercher.

Merci d'avance pour votre aide.

Ludovic


Réponses

  • Bonjour,

    Une page blanche veut souvent dire une Fatal error en php.
    Mettez le paramètre display_errors de l'opac à 1.
    Il y aura peut-être l'affichage d'une erreur plus spécifique.

    Assurez-vous également que les paramètres comme url_base,  opac_url,... sont bien renseignés.

  • 24 janv. modifié
    Merci pour votre réponse.

    L'affichage des erreurs ne change rien malheureusement.

    J'avoue m'y perdre un peu entre les url_base_cms_buil, url_base, etc...

    par exemple :
    url_base_cms_build c'est l'url sur laquelle on souhaite que l'opac soit accessible et pas le opac_css ?

    merci d'avance
  • Bonjour,

    Il y a surtout a bien renseigner ces 4 parametres:

    (Parametres generaux)  url_internal = url de base de la gestion

    (Parametres generaux) url_base = url de base de la gestion
    (Parametres generaux)  opac_url = adresse de l’OPAC
    (Opac)
    url_base = adresse de l'opac

    url_base_cms_build c'est l'adresse du cms (portail) donc de l'opac en general

    Attention pour display_errors, il y en a deux , pour vous ce serait celui de l'opac a mettre a 1. Mais mettre les deux a 1 est mieux en phase de test.

    Vous pourriez aussi avoir des problemes de droits sur les repertoires et les fichiers.


  • 29 janv. modifié
    Bonjour,

    Merci pour votre aide.

    url_internal : j'ai bien l'url du PMB (qui est un sous domaine dans mon cas donc je n'ai pas de dossier à la fin de l'url mais j'ai bien le "/" comme demandé

    url_base : la même chose que url_internal

    url_base (Opac) : même chose avec opac_css/ à la fin

    opac_url : idem que le url_base de l'opac

    url_base_cms_build : idem que les 2 précédents (ce n'est pas gênant que cela corresponde au dossier opac_css qui est bien présent sur la racine du serveur web ?

    -> j'avais testé sur cette variable à mettre autre chose et tenter d'y accéder mais cela ne fait rien (pas d'url rewritting puisqu'il indique que le chemin est introuvable)

    Par contre, si je vais dans portail puis construire, la page s'affiche vide et je n'ai pas d'url dans la zone en haut de l'éditeur (à côté de "Information de l'opac")

    -> url de la page correspondante : /cms.php?categ=build&sub=block

    La saisir et enregistrer ne change rien.

    Les erreurs sont activées sur les 2 et cela ne change rien.

    Le dossier opac_css est bien lisible puisque si je rajoute des petits "echo" dans les php pour voir si il exécute le code, j'ai bien l'affichage de mes messages de test.

    C'est pour cela que je ne sais plus trop où chercher.


  • Pas meme de warning php ?
    Vous etes en quelle version de Php ? 
    Les permissions doivent etre suffisantes sur toute l'arborescence Opac

  • 29 janv. modifié
    Non pas de warning, même si les 2 sont activés, je vais voir si l'hébergeur ne le bloquerait pas mais j'avais des warning en admin à un moment donc cela devrait être actif.

    En principe php 7.4

    J'avais demandé à l'hébergeur de remettre à jour les permissions.

    Si je tente une mise à jour, cela peut aider ou plutôt empirer ?

    Merci

    Edit : les dossiers de caches par contre, si incorrect cela peut créer cette erreur ? je peux désactiver le cache complètement sur l'opac de quelle manière pour lever le doute ?

  • 30 janv. modifié
    - A propos des 4 parametres, bien verifier que pas d'espace n'existe 
    devant ni derriere les chaines des urls.

    - Vous pouvez voir la  version  de php en cours par 
    Administration > Outils > Maintenance MySQL 
    Informations Php

    - Pour le cache Outils > Paramètres
    filtre rapide : vous mettez "cache"
    et vous verrez les durees de cache de l'opac que vous pouvez mettre a 0

    - Au lieu de faire une mise a jour, mieux vaudrait reproduire le site
    en local sur un simple PC ou serveur pour tout maitriser.
    Et voir si c'est votre config PMB ou votre hebergement qui pose probleme.

    - Voir aussi si il n'y a pas de blocage par par exemple 
    Modsecurity ou le htaccess

    - A tout hasard, et pour etre systematique, verifiez aussi que le fichier 
    pmb\opac_css\includes

    opac_db_param.inc.php

    a bien toutes les bonnes valeurs database, user password ,...




  • 31 janv. modifié
    Merci pour votre aide.

    - les 4 paramètres n'ont pas d'espace et se terminent bien par /

    - j'avais fait un php.ini pour forcer : 7.4.33

    - c'est fait pour le cache : sans changement malheureusement

    - je vais voir pour un test sur un autre environnement (l'hébergeur est o2switch : habituellement ils sont plutôt souples sur les réglages php et autre)

    - pour mod_security : pmb n'est pas compatible ? pour le htaccess, je n'ai que le code pour forcer php 7.4 car sinon je serais en 8 et si j'ai bien compris ce n'est pas conseillé avec mon pmb

    - pour le opc_db_param.inc.php : j'ai mis les mêmes infos BDD que dans celui de pmb gestion et même chose sur les 3 "case" du "switch" car je n'étais pas certain de celui qui me conernait

    j'ai un user, password et base (le serveur sql est en localhost ) : ces infos fonctionnent pour l'autre partie

    c'est quel php qui doit afficher un début de rendu pour la page de l'opac ? (juste pour y insérer un "echo" pour voir si j'arrive à ce bout de code ou si le code s'arrête avant ?

    encore merci pour votre aide

    Edit : en allant dans l'édition d'un utilisateur, j'ai :

    select * from concept_scheme order by 2 qui donnerune erreur (à priori la table n'existe pas)

    pourtant je n'ai pas eu d'erreur en faisant la mise à jour des bases



  • - Pour etre certain du php
    vous pouvez aller sous Outils > Maintenance MySQL
    puis cliquer Informations Php
    pmb/admin.php?categ=misc&sub=mysql&info=phpinfo


    - concept_scheme n'est pas une table a priori.

    Mais, vous pouvez aussi nettoyer la base ,réparer les tables ,....
    Outils > Maintenance MySQL
    puis reindexer  :
    Outils > Nettoyage de base

    - modSecurity peut etre configure pour bloquer plein de choses.
    Donc on peut le mettre off le temps d'un test, juste pour etre systematique.

    - Vous pourriez aussi essayer de changer la localisation du dir opac_css
    Il faut alors modifier les parametres en consequence.

    - Tracer l'acces au php de l'opac est une bonne idee pour verifier si 
    au moins on arrive au php.

    Par exemple, dans opac_css/index.php  un echo,

    puis dans l'include

    pmb/opac_css/includes/index_includes.inc.php
    - un echo en haut, mais apres <?php
    echo "<h1>  index_includes.inc Up</h1>";
     - un autre en bas, mais avant le ?>
    echo "<h1>  index_includes.inc down</h1>";

    vous devriez les voir sur la page, sauf si pb.

  • 12 févr. modifié
    Merci pour ces nouvelles pistes.

    - pour le php : PHP Version 7.4.33 dans la page indiquée

    - étrange pour concept_scheme car select * from concept_scheme c'est une requête SQL :$

    - la réindexation n'affiche pas d'erreur à la fin

    - modSecurity : désactivé sans effet

    - pour le changement du répertoire opac_css : je ne renomme sur le serveur je change url_base et opac_css

    - pour le test avec les echo, si je me place à la toute fin du index_includes.inc, juste après : pmb_mysql_close();
    le echo ne s'affiche pas donc le php doit s'arrêter

    je suis remonté au common_include_inc qui semble bloquer sur :

    if(!isset($dbh) || !$dbh){
        $dbh = connection_mysql();
    }

    Je vais essayer de trouver pourquoi.

    si je le commente j'ai des erreurs (logique) mais à priori le code de cette fonction fini sur un die sans afficher d'erreur ce qui n'est pas très pratique


  • Une fonction connection_mysql() (identique sinon presqu'identique) est aussi utilisee en gestion , et chez vous elle fonctionne.
    La difference importante est le fichier opac_db_param.inc.php.
    Vous l'avez verifie, mais peut-etre un caractere special pas visible ?
    De toute facon, vous avez montre que le code opac demarre bien, c'est deja un progres. En tracant connection_mysql() vous devriez pouvoir trouver le probleme assez vite.

  • 14 févr. modifié
    J'ai suivi vos conseils sur le fichier de config que j'avais normalement complété par copier / coller et j'ai tout remis manuellement et là c'est mieux : j'ai du HTML de généré :)

    -> je pense effectivement un souci dans le contenu fichier mais non visible : par contre cette même config fonctionne pour l'admin

    Ce qui est dommage par contre, c'est de ne pas avoir de remontée d'erreur claire car j'ai erreurs php actives et erreurs dans PMB et PMB OPAC

    Il y a une fonction de retour d'erreur à priori dans le include mysql mais le code ne fait rien remonter de visible.

    Par contre, je pense que j'ai une config qui ne va pas car les liens html de l'opac se retrouvent préfixés par le chemin du dossier  et non par le chemin de l'url (je me retrouve avec /home/xxxx/ au lieu de http://pmb.monpmb.com

    Je vais essayer d'écraser les fichiers php de l'opac car j'ai peut être un essai qui est resté.

    Je vais aussi tenter de remettre le mod_security pour ne pas le laisser off pour rien.

    En tout cas, c'est déjà une grosse avancée grâce à votre aide : merci
  • Ravi que ca ait pu vous aider.
    Le prefixage est peut-etre en effet une scorie de vos tests.
    Vous pouvez aussi voir par le filtre si le string home/xxxx est trouve (et ou ) dans vos parametres 
Connectez-vous ou Inscrivez-vous pour répondre.