Renoir Boulanger Un geek social et Linuxien de nature

Installer PHP 5.3.1 sous Debian et/ou Ubuntu via un repository non officiel

J’était, hier, en train de jouer avec des appels SOAP pour préparer un projet et j’ai réalisé que ma version compilée de php 5.3.0 était défectueuse. Je dis que mon installation est défectueuse car lorsque j’instantiait $client = new Zend_Soap_Client; plus rien ne répondait. Même aller en error_reporting(E_ALL); et tout ce qui est imaginable. C’est après quelques heures a tourner … Continued

J’était, hier, en train de jouer avec des appels SOAP pour préparer un projet et j’ai réalisé que ma version compilée de php 5.3.0 était défectueuse.

Je dis que mon installation est défectueuse car lorsque j’instantiait $client = new Zend_Soap_Client; plus rien ne répondait. Même aller en error_reporting(E_ALL); et tout ce qui est imaginable. C’est après quelques heures a tourner en rond je me suis dit que si même $client = new SoapClient; avec un résultat du genre “Class does not exists”. C’est le PHP… pas le code ou le Framework. Pas de doute.

J’ai donc pensé recompiler la dernière version PHP 5.3.1 qui est considérée stable… quant à recompiler, autant mettre à jour sur la dernière version!

Ce billet vous permettra d’installer la version stable PHP 5.3.1 a partir d’un repository déjà configuré au lieu de le compiler.

 

Tournage en rond avant d’en arriver là

J’ai souvent entendu l’adage qui veut qu’on ne devrait pas installer un logiciel a sa première version majeure. On peut faire le parallèle avec les automobiles. Il y a des coins ronds qui doivent être réparés. La version 5.3.1 est justement la correction de plus de 100 bugs.

 

Quelques corrections dans PHP 5.3.1

  • Ajouté “max_file_uploads” dans la configuration INI qui peut etre là pour éviter la quantité de fichiers téléversés a 20 par défaut. Ainsi éviter un tentative d’attaque DOS
  • Ajouté des vérification de validité sur le moteur exif
  • Corrigé le “safe_mode” dans tempnam()
  • Corrigé open_basedir dans posix_mkfifo()
  • Corrigé la fonction brisée safe_mode_include_dir

Voir le “ChangeLog (anglais)” et son “release announcement (anglais)

 

Ma station de travail

Ma station de travail secondaire est en Ubuntu 8.10 sur mon vieux portable. J’avait compilé la version 5.3.0 il y a plusieurs mois (dès sa sortie) pour pouvoir jouer avec les nouvelles fonctions.

La version disponible en auto-installation sur Ubuntu est encore sur du PHP 5.2.x ce qui est innacceptable pour mes projets. J’avait même fait ma ligne configure et j’avait commencé a compiler la nouvelle version. C’est là que je me suis dit que j’était pas le premier a vouloir une version plus récente de PHP.

 

Installer PHP 5.3.1 sous Ubuntu Linux

Mise à jour

Nous avons fait la migration de notre serveur d’hébergement public vers cette version de PHP 5.3.1 en suivant cette procédure. J’ai ajusté le tutoriel.

LE CHANGEMENT: Utiliser aptitude au lieu de apt-get

C’est pas une version officielle selon Debian ou Ubuntu car jusqu’en mi-2010 sur la release Squeeze de Debian c’est comme ça.

AVERTISSEMENT

Il s’agit d’une version compilée par une source extérieure de Debian ou Ubuntu maintenaue par Dotdeb. Cette partie du tutoriel est largement inspirée (traduction quaisi verbatim) du billet suivant.

Comparé a la version Debian, la version Dotdeb a ces changements

  • Les .deb ont le patch Suhosin appliqué par défaut
  • mis a part apache2, apache2filter, CGI, et le CLI (pour la ligne de commande), le module FPM utilise la version custom [de Dotdeb] du paquet intitulé “php5-fpm“. Il permet des meilleures performances et plus de fonctions comparables a une installation en mode CGI.
  • Note: Le module FPM: a un exemple de configuration, un “init script”, et un gabarit de configuration pour NGINX

Installer?!

C’est fonctionnel sous Debian Lenny et probablement d’autres. Moi, personnellement, je l’ai essayée sous Ubuntu 9.04 Jaunty. Dites-moi si vous l’avez essayé sous d’autres version dans les commentaires

Étape 1

Modifier le sources.list

$ sudo vi /etc/apt/sources.list

Ajouter les deux lignes suivantes.

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

Étape 2

Maintenant, simplement mettre a jour avec…

# aptitude update && aptitude upgrade

Si vous aviez une version inférieure de PHP, elle devrait se mettre à jour.

Sources

PHP 5.3.1 packages for Debian “Lenny” : they’re here!

Comments

  1. Seb

    J’ai eu absolument le même problème aujourd’hui concernant le “class does not exist”.. Mais avec PHP 5.3.1 sur une RHEL4 dans un mauvais état (avec un mélange de paquets rhel3, centos, et des trucs compilés à la main)

  2. Michael

    Bonjour,
    Merci pour cette documentation. Fort utile !
    Testée aujourd’hui sous Debian 2.6.32-bpo.4-amd64. Installation de PHP 5.3.2 sans aucun problèmes.

    Je n’ai pas encore pus tester les fonctionalitées de cette version… J’espère ne pas avoir vos problèmes…

    Encore merci.

Comments are closed.