Installation échoue sans remonter l'erreur PHP

Bonjour,

Je tente une petite installation locale pour faire des tests en vue d'une prochaine migration. Le rapport d'installation aboutit à une page blanche sans aucune info. En consultant les logs PHP, il y a un warning et une erreur, qui ne sont donc pas remontés :
PHP Warning: fopen(../includes/db_params.inc.php) : argument#1 ($stream) must be of type resource, false given in /var/www/pmb/tables/install.class.php:226
PHP Fatal error: uncaught TypeError: fwrite(): argument#1 ($stream) must be of type resource, false given in /var/www/pmb/tables/install.class.php:226

Pour le contexte :
- Ubuntu 24.04.1
- Apache 2.4.58
- PHP 8.3.6 (j'ai aussi tenté en 8.3 vu que c'est la version mentionnée dans les prérequis, sans effet)
- MySQL 8.0
- PMB 8.0

Quelqu'un a-t-il déjà rencontré cela ? J'imagine qu'il peut y avoir une version antérieure de PHP qui utilise une autre définition de fwrite et fopen et ne pose alors pas problème. Mais il faudrait corriger la documentation "prérequis", et dans l'idéal, rectifier l'erreur (ou au moins la faire remonter, qu'on ne se retrouve pas avec un écran blanc).

Merci d'avance pour vos lumières !

Réponses

  • Bonjour,

    Merci de signaler ces erreurs qui seront utiles aux développeurs PMB.

    En fait, c'est normal que les erreurs ne soient pas affichées en production.
    Mais, grâce aux développeurs, vous avez deux paramètres (admin/opac) display_errors, qui mis à 1 vont les afficher.

    Selon Pmb Services récemment, Pmb8 n'est pas encore 100% compatible avec php8.
    Essayez peut-être en php7.4.

    Sinon vous pouvez aussi corriger ces erreurs dans le code en attendant une version plus stable.

  • 29 janv. modifié
    Merci pour ce retour. J'ai activé l'affichage des erreurs dans php.ini, remplacé php8.3.6 par php7.4.33, et tenté d'installer pmb7.5.8. Ça se passe à peine mieux ; on franchit plus d'étapes, mais php fini par planter (à l'étape "Création des fichiers de connexion"), avec des erreurs similaires :

    Warning: fopen(../includes/db_param.inc.php): failed to open stream: Permission denied in /var/www/pmb/tables/install.class.php on line 225
    Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/pmb/tables/install.class.php on line 226
    Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/pmb/tables/install.class.php on line 227
    Warning: fopen(../opac_css/includes/opac_db_param.inc.php): failed to open stream: Permission denied in /var/www/pmb/tables/install.class.php on line 231
    Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/pmb/tables/install.class.php on line 232
    Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/pmb/tables/install.class.php on line 233

    A noter que le fichier qu'on tente d'accéder dans la première erreur semble ne pas exister ; il y a un db_param.inc.php_example mais pas db_param.inc.php. Les erreurs suivantes découlent de la première (on tente de passer la ressource reçue par fopen, mais vu que fopen a renvoyé false...).

    -edit j'ai copié le fichier d'exemple pour créer db_param.inc.php, changé ses variables pour correspondre à la config, et chmod 777 le fichier, ça contourne le premier problème de permission. Mais on tombe sur le même problème ligne 231 quand on tente d'ouvrir /opac_css/includes/opac_db_param.inc.php. Il manque donc plusieurs fichiers dans le zip officiel d'installation...

    -edit2 même solution pour opac_db_param.inc.php sauf que désormais le rapport d'installation ne vient jamais, car le script tourne en boucle sur une l'erreur suivante (tirée des logs d'apache) : "PHP Notice:  Trying to get property 'error' of non-object in /var/www/pmb/includes/mysql_functions.inc.php on line 82, referer: http://127.0.0.1/tables/install.php".



  • Bonjour,

    .En fait , il est normal que pour une nouvelle installation il n'y ait pas dans la distribution db_param.inc.php
    mais db_param.inc.php_example , de meme pour l'opac.

    - Pour une nouvelle installation, ses fichiers sont crees selon les infos que vous fournissez :  user password pour mysql, nom de la base de donnees,etc... dans les interfaces d'install de PMB.

    -Si c'est une mise a jour, les fichiers originaux db_param.inc.php (et celui del'opac) existent deja, et ne seront pas ecrases.

    Donc il ne manque pas de fichiers dans la distribution.

    Mais un Permission denied in /var/www/pmb/tables/install.class.php 
    m'inciterait a voir les permissions de lire ce fichier.
Connectez-vous ou Inscrivez-vous pour répondre.