====== Installer PHP 5.4 ou 5.5 sous Debian ======
Les dépôts officiels standards Debian ne permettent d'installer que PHP 5.3 sur Squeeze ou Wheezy. Certes, l'utilisation des dépôts officiels backports permet de contourner les limites des dépôts standard mais elle reste limitée à ce que prévoit la version suivante, sous réserve que le rétro-portage ait été accomplit.
Il existe un moyen simple de disposer de versions récentes de PHP (jusqu'à 5.4 pour Squeeze et 5.5 pour Whezzy) : le dépôt [[http://www.dotdeb.org/|Dotdeb]].
Ce dépôt permet également d'installer des versions récentes de mySQL et Nginx.
Cette technique ne permet pas de faire **coexister** la version de référence de la distribution avec une version plus récente. Elle a pour effet de **remplacer** la version de référence par une version plus récente.
===== Avantages et inconvénients de Dotdeb =====
Le principal avantage de Dotdeb est de proposer des versions à jours. Mais cela expose également à certaines inconvénients :
* n'est pas géré par Debian (avec ses procédures et son niveau d'exigence),
* collections de modules moins riches que la distribution Debian standard,
* compilation de modules possible mais perte des mises à jour automatiques.
Si on a besoin de modules non disponibles dans la distribution, l'avantage relatif de Dotdeb est qu'on est rompue à la compilation de modules.
En savoir plus
* [[http://www.dotdeb.org/2008/09/25/how-to-package-php-extensions-by-yourself/|How to package PHP extensions by yourself]] (en, by Dotdeb)
===== Ajouter les dépôts dotdeb =====
Sources
* [[http://www.dotdeb.org/instructions/|Instructions]] (en) : documentation officielle de dotdeb.
=== Installer la clé ===
wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
=== Installer les dépôts généraux ===
Car ils contiennent des dépendances requises par les paquetages disponibles sur les dépôts spécifiques.
Pour Squeeze
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
Pour Wheezy
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
=== Installer les dépôts pour PHP ===
PHP 5.4 pour Squeeze
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all
PHP 5.5 pour Wheezy
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all
=== Mettre à jour les paquetages ===
Comme indiqué en début de cette note, nous allons procéder au remplacement des versions courantes de php et de mysql.
apt-get update
apt-get dist-upgrade
Sous Debian 6 (Sqeeze), il faut réinstaller manuellement MySQL pour terminer l'installation
apt-get install mysql-server
== Problèmes résiduels ==
Sources :
* [[https://www.ryan-tate.com/linux/upgrading-to-php-5-4-and-mysql-5-5-on-debian-6-squeeze/|Upgrading to PHP 5.4 and MySQL 5.5 on Debian 6 “Squeeze”]] (en)
* {{::nouveautes_php_5.4.txt|Nouveautés PHP 5.4}} (changelog)
* {{::trace_php_5.4_sqeeze_upgrade.txt|difficultés d'installation}} (trace d'installation)
Le changement de version de PHP - qui plus est, à partir d'une source différente(Dotdeb n'est pas Debian !)), risque fort d'entraîner une discontinuité dans certains modules et d'altérer certains réglages (par exemple le jeu de caractères par défaut de PHP).
Les situations varient si l'on passe de 5.3 à 5.4 ou de 5.4 à 5.5 et en fonction des modules packagés que l'on a soit même installés (sans parler de PECL !).
===== Mise à jour de Virtualmin =====
Source : [[https://www.virtualmin.com/node/18712#comment-83864|Dotdeb php packages php5 conf error]] (en, by Virtualmin forum).
Si le serveur sur lequel on effectue la mise à jour est administré via Virtualmin, les sites utilisant des scripts php ne sont plus accessibles((Le script n'est plus exécuté, le fichier php est proposé au téléchargement.)).
Il suffit d'intervenir sur deux fichiers se trouvant dans le répertoire ///etc/apache2/mods-available//. Dans les deux cas, il s'agit de commenter les paramètres définissant le "handler" php à utiliser pour obtenir le résultat présenté dans les séquences suivantes.
fcgid.conf :
# AddHandler fcgid-script .fcgi
# FcgidConnectTimeout 20
php5_cgi.conf:
…
# SetHandler application/x-httpd-php
…
Ne pas oublier de relancer Apache pour que la configuration soit prise en compte.
Concernant la déclaration explicite du jeu de caractère par défaut, ne pas oublier que le fichier //php.ini// pris en compte n'est pas celui définit par défaut (/etc/php5/apache2|cgi/php.ini) mais le fichier propre à chaque virtual server //~/etc/php5/pnp.ini//.
Conditions de test : Virtualmin 4.10 gpl, Debian 6 Squeeze, PHP 5.4.32-1~dotdeb.0.