web-dev-qa-db-fra.com

Comment puis-je facilement basculer entre les versions PHP sur Mac OSX?

Je voudrais tester mon application sur PHP 5.3 jusqu'à PHP 7.0.

Où et comment puis-je installer les versions et comment les changer en exécutant un petit script?

11
Xaver

J'ai trouvé ce très bon tutoriel sur la façon d'installer et de changer les versions php sur OSX.

Je peux changer de version comme

$ sphp 54 => PHP 5.4
$ sphp 55 => PHP 5.5
$ sphp 56 => PHP 5.6
$ sphp 70 => PHP 7.0

Exactement ce que je veux!

18
Xaver

Utilisation de brew

Afficher la version actuelle

$ php -v

Passer à une version différente
(par exemple, passage de 5.5.x à la version 7.0.latest):

$ brew unlink php55
$ brew install php70
17
kris

Si vous installez PHP avec homebrew, vous pouvez basculer entre les versions très facilement. Dites que vous voulez php56 pour pointer vers la version 5.6.17, il vous suffit de:

brew switch php56 5.6.17
9
Mark Setchell

je pense que les versions php de dissociation et de liaison ne sont pas suffisantes car nous utilisons souvent php avec Apache (httpd), il faut donc mettre à jour httpd.conf après avoir changé de version php.

j'ai écrit un script Shell pour désactiver/activer php_module automatiquement à l'intérieur httpd.conf, regardez la ligne 46 à la ligne 54 https://github.com/dangquangthai/switch-php-version-on-mac-sierra/blob/master/switch-php#L46

Suivez mes étapes:

1) Vérifiez les versions php installées par brassage, pour sûr tout est bon

> brew list | grep php
#output
php56
php56-intl
php56-mcrypt
php71
php71-intl
php71-mcrypt

2) Exécuter le script

> switch-php 71 # or switch-php 56
#output
PHP version [71] found
Switching from [php56] to [php71] ... 
Unlink php56 ... [OK] and Link php71 ... [OK]
Updating Apache2.4 Configuration /usr/local/etc/httpd/httpd.conf ... [OK]
Restarting Apache2.4 ... [OK]
PHP 7.1.11 (cli) (built: Nov  3 2017 08:48:02) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

3) Enfin, lorsque votre message est au-dessus, vérifiez httpd.conf, dans mon portable:

vi /usr/local/etc/httpd/httpd.conf

Vous pouvez voir à proximité des lignes LoadModule

LoadModule php7_module /usr/local/Cellar/php71/7.1.11_22/libexec/Apache2/libphp7.so
#LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/Apache2/libphp5.so

4) ouvrez httpd: //localhost/info.php

j'espère que cela vous sera utile

1
thai.hulk