Installation sous Linux et pb PHP
Envoyé par: L'Arcandier ()
Date: lundi 25 septembre 2006 15:41:58

Bonjour à tous, je viens d'installer OpenFlyers 1.3.0 sur un PC équipé de Linux. Toutefois, ça m'a pris un après-midi pour trouver le petit truc qui l'empêchait de fonctionner : en fait cela venait du fichier Span.php fourni avec le package Date pour Pear. L'effet est que l'installation se déroulait correctement mais que par la suite, une page blanche s'affichait obstinément dans le navigateur en lieu et place de l'écran de connexion.

Je n'ai rien déposé sur le gestionnaire de bugs car cela ne concerne pas le fonctionnement d'OpenFlyers lui-même. Si j'ai eu tort, merci de me le faire remarquer.

Tout d'abord, la distribution utilisée est la Fedora Core 4 avec les paquets suivants :
php-pear-5.0.4-10.5
php-mysql-5.0.4-10.5
php-5.0.4-10.5
httpd-2.0.54-10.4
mysql-4.1.20-1.FC4.1
mysql-server-4.1.20-1.FC4.1

J'ai également installé ou modifié les paquets PEAR afin d'avoir les mêmes versions qu'indiqué dans la documentation en ligne (j'ai donc Date 1.4.3).

Donc, à force d'"echo 'coucou';" j'ai fini par cerner le problème : à la ligne 667 du fichier Date.php (fourni avec le paquet PEAR du même nom), l'exécution du code s'arrête à la création d'une instance d'un objet Date_Span :

$this->subtractSpan(new Date_Span($sec));

Cette classe se trouve dans le fichier Date/Span.php. Voici son constructeur :

function Date_Span($time = 0, $format = null)
{
$this->set($time, $format);
}

En mettant des echo quelque chose un peu partout, je me suis aperçu que le constructeur était appelé un grand nombre de fois. Après avoir essayé en vain de trouver une explication rationnelle à cette bizarrerie, j'ai trouvé la réponse un peu par hasard : à la fin du fichier Span.php, dans la classe Date_Span, se trouve cette fonction que je mets avec son commentaire :

/**
* Returns a copy of the object (workarround for PHP5 forward compatibility).
*
* @return object Date_Span Copy of the object.
*/
function __clone() {
$c = get_class($this);
$s = new $c;
$s->day = $this->day;
$s->hour = $this->hour;
$s->minute = $this->minute;
$s->second = $this->second;
return $s;
}

J'ai mis ça en commentaire et tout a fonctionné.

Il s'agit donc apparemment d'un bug du paquet Date 1.4.3 qui ne peut pas fonctionner avec PHP 5. Ceci dit je ne suis pas du tout versé dans les subtilités de PHP alors peut-être que l'un d'entre vous trouvera une solution plus élégante :-)

Oh, j'allais oublier : OpenFlyers a visiblement été écrit sous Windows [bouh la honte :-) ] donc pour que les caractères accentués soient correctement gérés par le serveur Apache, j'ai dû commenter la ligne "AddDefaultCharset UTF-8" dans httpd.conf afin qu'il utilise le bon jeu de caractères ISO-8859-1. Mais à part ça, ça semble bien fonctionner.

Sous Firefox 1.0.7 aucun problème, par contre avec Opera 9 les titres des menus "cahier instructeur" et "liste de membres" débordent un peu.

Voilà, ça c'était chez moi pour tester, le week-end prochain j'essaierai sur le PC de l'aéroclub, un Celeron 500 MHz avec 192 Mo de RAM que j'ai débarrassé de Windows 98 et muni de la Fedora Core 5, donc une autre version que chez moi. Si vous n'avez pas de mes nouvelles c'est que ça aura marché :-)

Bons vols !

Options: RépondreCiter
Re: Installation sous Linux et pb PHP
Envoyé par: claratte ()
Date: lundi 25 septembre 2006 21:29:01

Bonjour,

Une solution plus élégante consiste à mettre un simple underscore devant le clone.

Sinon, installer OF en local est un contre-sens. Vous devriez plutot essayer de l'installer sur un serveur distant...

Christophe LARATTE
OpenFlyers manager

Options: RépondreCiter
Re: Installation sous Linux et pb PHP
Envoyé par: L'Arcandier ()
Date: lundi 25 septembre 2006 21:48:19

Effectivement ce renommage fonctionne. Merci pour la réponse rapide !

Quant à installer OF en local cela a un sens puisque mon club ne dispose pas encore d'un accès à Internet. Le but étant d'habituer les membres du club à son utilisation (l'AG aura lieu bientôt, j'en profiterai pour leur présenter le logiciel) puis par la suite d'utiliser effectivement un serveur Internet quand une connexion ADSL sera mise en place.
Et puis il faut bien l'avouer, j'aime bien bricoler sous Linux :-)

Et bien sûr merci aux développeurs bénévoles qui passent beaucoup de temps à améliorer OF et à résoudre les problèmes qui peuvent apparaître.

Options: RépondreCiter
Re: Installation sous Linux et pb PHP
Envoyé par: claratte ()
Date: lundi 25 septembre 2006 21:59:28

Effectivement, si vous n'avez pas d'accès internet, cela prend tout son sens ;-)

(on n'avait pas trop pensé à utiliser OF sans internet...)



Modifié 1 fois. Dernière modification le 25/09/06 22:00 par claratte.

Options: RépondreCiter


Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.
This forum powered by Phorum.