Utilisez la version PHP pour changer de version PHP sur macOS

藏色散人
Libérer: 2023-04-07 12:24:02
avant
4374 Les gens l'ont consulté

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
Copier après la connexion

é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
Copier après la connexion

Ajoutez maintenant des variables d'environnement

[qian@bogon ~ ]$ echo "source $HOME/.local/php-version/php-version.sh" >> ~/.zshrc
[qian@bogon ~ ]$ source ~/.zshrc
Copier après la connexion

Changer de version php

php-version 7.1
Copier après la connexion

ou

php-version 7.2
Copier après la connexion

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
Copier après la connexion

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.
Copier après la connexion

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
Copier après la connexion

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.
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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.
Copier après la connexion

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
Copier après la connexion

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

brew uninstall --force php71 && brew install php71
Copier après la connexion

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
Copier après la connexion

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 ~ ]$
Copier après la connexion
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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!