Maison  >  Article  >  développement back-end  >  Comprendre comment utiliser la version PHP pour changer de version PHP sous macOS

Comprendre comment utiliser la version PHP pour changer de version PHP sous macOS

coldplay.xixi
coldplay.xixiavant
2020-06-30 17:58:003350parcourir

Comprendre comment utiliser la version PHP pour changer de version PHP sous macOS

L'environnement local est 7.1, ce qui est cohérent avec l'environnement du projet de l'entreprise, mais la mise à niveau de laravel6.0 doit nécessiter 7.2 (l'environnement local des amis du groupe est 7.2, puis poussez Après le code, l'environnement de développement du projet ne peut pas être déployé automatiquement). Après y avoir réfléchi, je dois encore obtenir quelque chose localement pour faciliter le changement de version PHP.

Méthode 1. Utiliser valet use php@version (Amis qui utilisent Valet pour créer l'environnement, veuillez lire ici)

C'est en fait parce que je n'ai pas lu attentivement la documentation - -, j'ai seulement appris les bases de valet en général Utilisation - -, si vous lisez attentivement la documentation, vous pouvez gagner une demi-journée - -

Valet vous permet d'utiliser la commande valet use php@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@7.1

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.

Mise à niveau de Valet :
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, cela s'avère nécessaire) de réexécuter Valet Install afin que Valet puisse mettre à jour le fichier de configuration.

composer global update
valet install

Après le bleu, tout ira bien valet use 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.

Méthode 2 : 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 // Si vous en avez déjà une, vous n'en avez pas besoin
brew install php72

étape 2. . Trouvez Brew pour installer la version php La commande échoue, puis 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 la variable d'environnement

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

Changez la version de php

php-version 7.1
或
php-version 7.2

Utilisez la ligne de commande. comme çaphp -v C'est déjà après le changement de version.


Record des pièges

1. La première fois que vous utilisez Brew pour installer php72, les autorisations ne sont pas suffisantes pour créer le répertoire Frameworks

Une erreur se produit lorsque vous l'exécutez pour la première fois

==> 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

Ensuite, allez dans /usr/local/ et créez un nouveau répertoire Frameworks, et exécutez-le à nouveaubrew install php72

Utilisez Brew pour installer le php. -version outil, la commande échoue

brew install php-version
Une erreur a été donnée

[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 a dit qu'il n'y avait rien de tel appelé "php-version", et j'ai aussi extrait "homebrew /core"

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

3. Exécuter php -vTimes 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, je viens de réinstallez Dafa

brew uninstall --force php71 && brew install php71

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


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

Comme la méthode 1 ci-dessus, la version php est installée,php -v Également face à
mais. . . . Que vous utilisiez sudo pkill -INT -o php-fpm ou sudo kill -9 进程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

Imprimez phpinfo() dans le code ; toujours la version php avant de changer. , vous devez trouver la raison et trouver un moyen
Utilisez la commande sudo php-fpm et constatez que 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 ~ ]$

Recommandations d'apprentissage associées. : Programmation PHP de l'entrée à la maîtrise

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