Maison  >  Article  >  développement back-end  >  Utilisez la version PHP pour changer de version PHP sur macOS

Utilisez la version PHP pour changer de version PHP sur macOS

藏色散人
藏色散人avant
2019-09-19 10:06:534422parcourir

L'environnement local est 7.1, ce qui est cohérent avec l'environnement de projet de l'entreprise, mais la mise à niveau de laravel6.0 doit nécessiter 7.2 (l'environnement local de certains amis du groupe est 7.2, et l'environnement de développement du projet ne peut pas être automatiquement déployé après en poussant le code), je pense qu'après y avoir réfléchi, je dois encore créer quelque chose localement qui puisse facilement changer de version de php.

Méthode 1 : Installer la version php (si le voiturier n'est pas utilisé, cela devrait être possible)

étape 1. Utilisez Brew pour installer plusieurs versions de php

brew install php71 // 原本有就不需要
brew install php72

étape 2. Si vous constatez que la commande Brew pour installer la version php échoue, installez-la manuellement

[qian@bogon ~ ]$ mkdir $HOME/.local
[qian@bogon ~ ]$ cd $HOME/.local
[qian@bogon .local ]$ git clone https://github.com/wilmoore/php-version.git
[qian@bogon .local ]$ source $HOME/.local/php-version/php-version.sh
//测试  查看当前php版本
[qian@bogon .local ]$ php-version
* 7.1.18
 7.2.22

Ajoutez maintenant des variables d'environnement

[qian@bogon ~ ]$ echo "source $HOME/.local/php-version/php-version.sh" >> ~/.zshrc
[qian@bogon ~ ]$ source ~/.zshrc

Changer de version php

php-version 7.1

ou

php-version 7.2

Utilisez la ligne de commande pour taper php -v C'est déjà la version commutée.

Méthode 2, utilisez Valet, utilisez php@version (Amis qui utilisent Valet pour configurer l'environnement, veuillez lire ici)

C'est en fait parce que je n'ai pas lu le document attentivement - -, je n'ai appris que grossièrement l'utilisation de base de valet avant - -, si vous lisez attentivement la documentation, vous pouvez gagner une demi-journée - -

Valet vous permet d'utiliser le valet use php Commande @version pour changer de version PHP. Si la version spécifiée n'a pas été installée, Valet installera la version PHP spécifiée via Brew :

valet use php@7.2
valet use php

Mais il doit s'agir d'une nouvelle version de valet et doit d'abord être mise à niveau, sinon une erreur sera signalée, comme suit

[qian@bogon ~ ]$ valet use php@7.2
  Command "use" is not defined.

Valet Upgrade :

Vous pouvez utiliser la commande composer global update dans le terminal pour mettre à jour Valet. Après la mise à niveau, si nécessaire, il est préférable (en pratique, c'est nécessaire) de réexécuter Valet Install afin que Valet puisse mettre à jour le fichier de configuration.

composer global update
valet install

Ensuite, c'est ok, utilisez php@7.2

[qian@bogon ~ ]$ valet use php@7.2
Stopping php@7.1...
Unlinking current version: php@7.1
Linking new version: php@7.2
Updating PHP configuration...
Restarting php@7.2...
Restarting nginx...
Valet is now using php@7.2.

Enregistrement de suivi

1 Utilisez Brew pour la première fois pour installer. php72 n'a pas suffisamment d'autorisations pour créer le répertoire Frameworks

Une erreur a été signalée lors de l'exécution du premier passage

==> Pouring python-3.7.4_1.mojave.bottle.tar.gz
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

Allez ensuite dans /usr/local/ pour créer un nouveau répertoire Frameworks , et exécutez à nouveau Brew Install php72. C'est Mais

2. Utilisez Brew pour installer l'outil de version php, mais la commande échoue

brew install php-version

Un message d'erreur est. étant donné

[qian@bogon ~ ]$ brew install php-version
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
atomist-cli                              webtorrent-cli
Error: No available formula with the name "php-version"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

Il dit qu'il n'y a rien de tel appelé "php -version", j'ai aussi extrait "homebrew/core"

git -C "$(brew --repo homebrew/core) " fetch --unshallow

3. Exécution de php -v reports dyld : Bibliothèque non chargée : /usr/local/opt/icu4c/lib/libicui18n.61.dylib

[qian@bogon ~ ]$ php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
[1]    66728 abort      php -v

Quoi qu'il en soit, il vaut mieux que je réinstalle Dafa

brew uninstall --force php71 && brew install php71

4. La version php ne fonctionne pas dans un environnement de voiturier

Si vous n'avez pas d'amis qui utilisez le voiturier, vous n'avez pas besoin de lire ce qui suit ~

Comme ci-dessus, première méthode, la version php est installée, php -v fait également face à

mais. . . . Que vous utilisiez sudo pkill -INT -o php-fpm ou sudo kill -9 process id,

ne peut pas tuer le processus php-fpm. Utilisez ps -ef grep php pour afficher le processus :

[qian@bogon ~ ]$ ps -ef |grep php
  501   307     1   0 四09上午 ??        51:34.33 /Applications/PhpStorm.app/Contents/MacOS/phpstorm -psn_0_90134
    0 70900     1   0  2:33下午 ??         0:00.11 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize
  501 70901 70900   0  2:33下午 ??         0:00.00 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize
  501 70902 70900   0  2:33下午 ??         0:00.00 /usr/local/opt/php@7.1/sbin/php-fpm --nodaemonize
  501 70904 10409   0  2:33下午 ttys007    0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn php

Impression de phpinfo () dans le code ; Il s'agit toujours de la version précédente de php après le changement. Vous devez trouver la raison et trouver une autre solution

Utilisez la commande sudo php-fpm et trouvez que le. l'erreur signalée est liée au valet

[qian@bogon ~ ]$ sudo php-fpm && php -v
Password:
[16-Sep-2019 18:27:08] ERROR: An another FPM instance seems to already listen on /Users/qian/.config/valet/valet.sock
[16-Sep-2019 18:27:08] ERROR: FPM initialization failed
[qian@bogon ~ ]$

Alors c'est parti, j'ai parcouru la documentation et j'ai découvert comment changer la version php du valet !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer