Tutoriel Vidéo Unix Installer plusieurs versions de PHP avec PHPBrew

Télécharger la vidéo

Une application, pour fonctionner, a souvent besoin d'une version spécifique du langage pour fonctionner. C'est un problème que l'on peut résoudre facilement avec Docker mais on n'a pas forcément l'envie de configurer une architecture en container pour ses projets. Des outils existent sur d'autres langages comme rvm pour Ruby et nvm pour NodeJS et je me suis mis en quête d'un équivalent sur PHP.

Le premier outil que j'ai trouvé, phpenv semblait convenir mais son utilisation s'avère beaucoup trop complexe par rapport à ses homologues ruby / nodejs. PHPBrew propose une approche beaucoup plus simple et fonctionne convenablement sur mes systèmes Linux et MacOS (même si son nom fait penser à homebrew, phpbrew n'est pas réservé à MacOS).

Installation

L'installation se fait très simplement mais nécessite quelques dépendances pour fonctionner correctement. En effet, PHPBrew ne va pas télécharger des versions précompilées de PHP mais compilera les sources directement sur votre système. Il vous faudra donc avoir les outils nécessaires :

sudo apt install \
  php-cli \
  php-curl \
  php-json \
  php-cgi \
  php-fpm \
  autoconf \
  automake \
  libxml2-dev \
  libcurl4-openssl-dev \
  libssl-dev \
  openssl \
  gettext \
  libicu-dev \
  libmcrypt-dev \
  libmcrypt4 \
  libbz2-dev \
  libreadline-dev \
  build-essential \
  libmhash-dev \
  libmhash2 \
  libxslt1-dev

Vous pouvez adapter et ajouter des extensions PHP si nécessaire. Une fois ces dépendances installées vous pouvez installer PHPBrew

curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
sudo mv phpbrew /usr/local/bin/phpbrew

Enfin, vous devrez ajouter le fichier bashrc de homebrew à votre shell :

# Pour bash, à ajouter au .bashrc ou .zshrc
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
# Pour fish, à ajouter au ~/.config/fish/config.fish
source ~/.phpbrew/phpbrew.fish

PHPBrew va installer les versions de PHP dans le dossier $HOME de l'utilisateur. Il est ainsi possible d'avoir des versions différentes par utilisateur (par contre dans le cas d'une installation de FPM il faudra faire attention aux permissions du fichier php-fpm.sock). Vous pouvez aussi installer l'outil globalement comme démontré dans la vidéo.

Maintenant, il ne nous reste plus qu'à installer la version de php souhaitée. Vous pouvez lister les versions disponibles à l'aide de la commande phpbrew known :

phpbrew install 7.1

Vous pouvez ensuite changer de version à l'aide de la commande use ou switch.

phpbrew use 7.1.25