Outils pour utilisateurs

Outils du site


informatique:phpbrew

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
informatique:phpbrew [2022/06/02 15:35] – créée bertrandinformatique:phpbrew [2022/06/30 18:30] (Version actuelle) – [Utilisation] bertrand
Ligne 1: Ligne 1:
 ====== PHPBrew ====== ====== PHPBrew ======
  
-[[https://phpbrew.github.io/phpbrew/|PHPBrew]] est un utilitaire qui permet d'installer de multiples versions de PHP et de ses extensions, et de basculer facilement de l'une à l'autre.+[[https://phpbrew.github.io/phpbrew/|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 est essentiellement utile sur une machine de développement. Pour un serveur, on privilégiera l'utilisation de [[:docker]].
 +
 +<note warning>Selon la version d’Ubuntu, des problèmes pour installer certaines versions de PHP peuvent se poser, liés à des contraintes de dépendances. Par exemple sous [[:Jammy]], l’installation de PHP 7.4 requière la bibliothèque //oniguruma//, problème qu’on peut éviter en évitant l’installation du module mbstring : ajouter l’option //-mbstring//, … mais on passe alors à une erreur liée à OpenSSL… qui nécessite de compiler la version OpenSSL plus ancienne qui va avec ((https://github.com/phpbrew/phpbrew/issues/1263)) </note>
  
 ===== Installation ===== ===== Installation =====
-Il faut si besoin, installer certains paquets dont aura besoin PHPBrew. Selon sa version d'Ubuntu, cela peut changer un peu, reportez-vous à la page [[https://github.com/phpbrew/phpbrew/wiki/Requirement#ubuntu-requirements|Ubuntu Requirements]] du projet.+Il faut installer certains paquets dont aura besoin PHPBrew. Selon sa version d'Ubuntu, cela peut changer un peu, reportez-vous à la page [[https://github.com/phpbrew/phpbrew/wiki/Requirement#ubuntu-requirements|Ubuntu Requirements]] du projet. 
 + 
 +Pour [[:jammy]], cela donne : 
 +<code bash> 
 +sudo apt install build-essential libbz2-dev libreadline-dev libsqlite3-dev libcurl4-gnutls-dev libzip-dev libssl-dev libxml2-dev libxslt-dev php8.1-cli php8.1-bz2 pkg-config 
 +</code>
  
 Pour [[:focal]], cela donne : Pour [[:focal]], cela donne :
Ligne 12: Ligne 19:
 </code> </code>
  
 +On télécharge et installe ensuite phpbrew :
 +<code bash>
 +# 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é
 +</code>
 +
 +on intialise phpbrew :
 +<code bash>
 +phpbrew init
 +</code>
 +
 +puis on ajoute à son fichier //~/.bashrc// la ligne :
 +<code bash>
 +[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
 +</code>
 +
 +on recharge notre fichier //.bashrc// :
 +<code bash>
 +source ~/.bashrc
 +# puis on définit le préfixe par défaut pour la recherche des bibliothèque
 +phpbrew lookup-prefix ubuntu
 +</code>
 +
 +===== Utilisation =====
 +Quelques commandes
 +<code bash>
 +# 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 basculer sur cette 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
 +</code>
 +
 +==== Installer PHP 7.4 sous Jammy (PHP8 par défaut) ==== 
 +Sous [[:jammy]], il faut installer la librairie Oniguruma (//libonig-dev//) et compiler la version d'OpenSSL compatible, cela donne les lignes suivantes ((https://github.com/phpbrew/phpbrew/issues/1263)) :
 +<code bash>
 +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
 +</code>
 +Et si tout s'est bien passé, on peut vérifier avec 
 +<code bash>
 +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
 +</code>
 ===== Voir aussi ===== ===== Voir aussi =====
  
 (fr) [[https://grafikart.fr/tutoriels/phpbrew-multiple-php-versions-1097|tutoriel de grafikart]] (sur lequel est basé cette page) (fr) [[https://grafikart.fr/tutoriels/phpbrew-multiple-php-versions-1097|tutoriel de grafikart]] (sur lequel est basé cette page)
 +
 +Crée par [[:utilisateur:bertrand]]
informatique/phpbrew.1654176955.txt.gz · Dernière modification : 2022/06/02 15:35 de bertrand