Erfahren Sie, wie Sie PHP-Version zum Wechseln der PHP-Version unter macOS verwenden

coldplay.xixi
Freigeben: 2023-04-09 06:22:02
nach vorne
3346 Leute haben es durchsucht

Erfahren Sie, wie Sie PHP-Version zum Wechseln der PHP-Version unter macOS verwenden

Die lokale Umgebung ist 7.1, was mit der Projektumgebung des Unternehmens übereinstimmt, aber für das Laravel6.0-Upgrade muss 7.2 erforderlich sein (die lokale Umgebung der Freunde in der Gruppe ist 7.2 und dann push Nach dem Code kann die Projektentwicklungsumgebung nicht automatisch bereitgestellt werden. Nachdem ich darüber nachgedacht habe, muss ich noch etwas lokal besorgen, um den Wechsel der PHP-Version zu erleichtern.

Methode 1. Verwenden Sie valet use php@version (Freunde, die Valet zum Aufbau der Umgebung verwenden, lesen Sie bitte hier)

Das liegt tatsächlich daran, dass ich die Dokumentation nicht sorgfältig gelesen habe - -, ich habe es nur gelernt die Grundlagen von Valet im Allgemeinen vor der Verwendung - -, wenn Sie die Dokumentation sorgfältig lesen, können Sie einen halben Tag sparen - -

Valet ermöglicht Ihnen die Verwendung des valet use php@version-Befehls zum Wechseln der PHP-Version. Wenn die angegebene Version nicht installiert wurde, installiert Valet die angegebene PHP-Version über Brew:

valet use php@7.2
valet use php@7.1
Nach dem Login kopieren

Dies muss jedoch eine neue Version von Valet sein und muss zuerst aktualisiert werden, andernfalls wird ein Fehler gemeldet , wie folgt

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

Valet-Upgrade:
Sie können den Composer-Befehl „Global Update“ im Terminal verwenden, um Valet zu aktualisieren. Nach dem Upgrade ist es bei Bedarf am besten (in der Praxis hat sich herausgestellt, dass es notwendig ist), Valet Install erneut auszuführen, damit Valet die Konfigurationsdatei aktualisieren kann.

composer global update
valet install
Nach dem Login kopieren

Nach Blau ist alles in Ordnung 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.
Nach dem Login kopieren

Methode 2: PHP-Version installieren (wenn Valet nicht verwendet wird, sollte dies möglich sein)

Schritt 1. Verwenden Sie brew, um mehrere PHP-Versionen zu installieren

brew install php71 // Wenn Sie bereits eine haben, brauchen Sie sie nicht
brew install php72Schritt 2 . Suchen Sie nach brew, um die PHP-Version zu installieren. Der Befehl schlägt fehl. Installieren Sie ihn dann manuell.

[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
Nach dem Login kopieren

Fügen Sie nun die Umgebungsvariable hinzu.

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

Wechseln Sie die PHP-Version.

php-version 7.1
或
php-version 7.2
Nach dem Login kopieren

Verwenden Sie die Befehlszeile so

Es ist bereits nach der Switch-Version.

php -v

Aufzeichnung der Fallstricke

1. Wenn Sie brew zum ersten Mal zur Installation von php72 verwenden, reichen die Berechtigungen nicht aus, um das Frameworks-Verzeichnis zu erstellen.

Ein Fehler tritt auf Sie führen es zum ersten Mal aus

==> 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
Nach dem Login kopieren

Gehen Sie dann zu /usr/local/ und erstellen Sie ein neues Verzeichnis Frameworks und führen Sie es erneut aus

brew install php722. Verwenden Sie brew, um das PHP zu installieren -version-Tool, der Befehl schlägt fehl

Es wurde ein Fehler ausgegebenbrew install php-version

[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.
Nach dem Login kopieren

Es hieß, dass es so etwas namens „php-version“ nicht gibt, und ich habe auch „homebrew“ gezogen /core"

git -C "$(brew --repo homebrew/core)" fetch --unshallow
Nach dem Login kopieren

3. Ausführung

Times dyld: Bibliothek nicht geladen: /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
Nach dem Login kopieren
php -vWie auch immer, ich habe gerade Dafa neu installieren

brew uninstall --force php71 && brew install php71
Nach dem Login kopieren

4. PHP-Version funktioniert nicht in der Valet-Umgebung

Wenn Sie keinen Freund haben, der Valet verwendet, müssen Sie das nicht lesen folgende~

Wie bei Methode 1 oben, PHP-Version ist installiert,

Auch gegenüber

aber. . . . Unabhängig davon, ob Sie php -v oder
verwenden, kann sudo pkill -INT -o php-fpm den PHP-FPM-Prozess nicht beenden. Verwenden Sie sudo kill -9 进程id

[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
Nach dem Login kopieren

Drucken Sie phpinfo() im Code aus Immer noch die PHP-Version, bevor Sie wechseln. Sie müssen den Grund finden und einen Weg finden. ps -ef | grep phpVerwenden Sie den Befehl

und stellen Sie fest, dass der gemeldete Fehler mit Valet zusammenhängt.

[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 ~ ]$
Nach dem Login kopieren

sudo php-fpmVerwandte Lernempfehlungen : PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie PHP-Version zum Wechseln der PHP-Version unter macOS verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage