Maison >développement back-end >tutoriel php >Utilisez la version PHP pour changer de version PHP sur macOS
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 phpImpression 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 solutionUtilisez 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!