PHPBrew est un utilitaire qui permet d'installer de multiples versions de PHP (5), 7 et 8 et de ses extensions, et de basculer facilement de l'une à l'autre. Il est essentiellement utile sur une machine de développement. Pour un serveur, on privilégiera l'utilisation de docker.
Il faut installer certains paquets dont aura besoin PHPBrew. Selon sa version d'Ubuntu, cela peut changer un peu, reportez-vous à la page Ubuntu Requirements du projet.
sudo apt install build-essential libbz2-dev libreadline-dev libsqlite3-dev libcurl4-gnutls-dev libzip-dev libssl-dev \ libxml2-dev libxslt-dev php-cli php-bz2 pkg-config
On télécharge et installe ensuite phpbrew :
# téléchargement curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar # ajout des droits d'exécution chmod +x phpbrew.phar # déplacement dans le bon répertoire et renommage sudo mv phpbrew.phar /usr/local/bin/phpbrew # on peut vérifier que le répertoie /usr/local/bin est bien défini dans la variable d'environnement $PATH echo $PATH | grep "usr/local/bin" # usr/local/bin doit ressortir surligné
on intialise phpbrew :
phpbrew init
puis on ajoute à son fichier ~/.bashrc la ligne :
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
on recharge notre fichier .bashrc :
source ~/.bashrc # puis on définit le préfixe par défaut pour la recherche des bibliothèque phpbrew lookup-prefix ubuntu
Quelques commandes
# pour lister les versions disponible de base phpbrew known # pour ajouter les versions 5 : phpbrew update --old # ajouter une version PHP sur sa machine : # la version 8.1.6 avec les modules par défaut, le module mysql et on évite le module mbstring qui nécessite la bibliothèque oniguruma phpbrew install 8.1.6 +default +mysql -mbstring # pour connaître les modules disponibles (et ceux inclus avec +default) : phpbrew variants # pour basculer sur la version 8.1.6 temporairement donc revient à la version par défaut au prochain démarrage de terminal phpbrew use 8.1.6 # ou basculer de façon permanente phpbrew switch 8.1.6 # pour revenir à la version par défaut du système phpbrew off
Sous jammy, il faut installer la librairie Oniguruma (libonig-dev) et compiler la version d'OpenSSL compatible, cela donne les lignes suivantes 2) :
sudo apt install libonig-dev cd $HOME wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz tar xzf $HOME/openssl-1.1.1i.tar.gz cd openssl-1.1.1i ./Configure --prefix=$HOME/openssl-1.1.1i/bin -fPIC -shared linux-x86_64 make -j 8 make install export PKG_CONFIG_PATH=$HOME/openssl-1.1.1i/bin/lib/pkgconfig && phpbrew --debug install 7.4 +default
Et si tout s'est bien passé, on peut vérifier avec
phpbrew use php-7.4.30 php -v # qui doit retourner quelques lignes telle que : PHP 7.4.30 (cli) (built: Jun 30 2022 18:11:43) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
L'installation de certain module peut poser problème, n'hésitez pas à consulter les tickets voire à en créer un sur page de bugs du dépôt officiel
Lors de l'installation d'une version de PHP (8.1.11) avec le module pgsql, ça retourne l'erreur :
checking for pg_config... not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
Il suffit d'installer au préalable la bibliothèque libpq-dev :
sudo apt install libpq-dev # et ensuite phpbrew install 8.1.12 +default +mysql +pgsql # s'installe correctement"
Contributeurs : bcag2