Aktualizacja PHP z 7.1 do 7.2 z Homebrew w macOS, ale wciąż widzimy PHP 7.1

0

Próbuję zaktualizować moją wersję PHP z 7.1 do 7.2 na macOS i Homebrew.

Zrobiłem następujące kroki:

brew install php72

brew services stop php71
brew unlink php71

brew link php72
brew services start php72

Wszystko wydawało się działać dobrze. Kiedy php --versiondostanę:

PHP 7.2.9 (cli) (zbudowany: 16 sierpnia 2018 21:40:59) (NTS) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies z Zend OPcache v7.2.9, Copyright (c) 1999-2018, autor: Zend Technologies

Ale jeśli spróbuję uruchomić skrypt PHP z phpinfo()tymi informacjami, nadal mówi PHP w wersji 7.1.20.

Po uruchomieniu mam uruchomione brew services listnastępujące usługi:

dnsmasq    started root     /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
mariadb    started xy       /Users/xy/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
nginx      started root     /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
php        started root     /Library/LaunchDaemons/homebrew.mxcl.php.plist
[email protected]    stopped

Co może być przyczyną?

Mango D.
źródło

Odpowiedzi:

2

brew unlink php71i brew link php72poprawi wiersz polecenia php do właściwej ścieżki i wersji, ale Apache nie zostanie zmieniony, dopóki nie zmienisz jego pliku konfiguracyjnego.

Najpierw zlokalizuj httpd.confścieżkę do pliku:

httpd -V | grep SERVER_CONFIG_FILE

Możesz także sprawdzić:

apachectl -t -D DUMP_INCLUDES

Następnie:

  • Otwórz httpd.confplik i znajdź wiersz zaczynający się odLoadModule php
  • Skomentuj ten wiersz #i dodaj zamiast niego linię 7.2. Możesz uzyskać linię od zapytania następującego polecenia w terminalu:
  • brew info [email protected] | grep LoadModule
  • powinien wyglądać następująco: LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
  • Na koniec uruchom ponownie Apache: sudo apachectl restart
  • twój skrypt powinien teraz działać w wersji php7.2

Są tu również szczegółowe instrukcje dotyczące korzystania z przełącznika php . Po zainstalowaniu możesz przełączać się między wersjami w ten sposób (automatycznie połączy zarówno Apache, jak i wiersz poleceń):

sphp 7.1
sphp 7.2
sphp 5.6
etc..
Yoric
źródło
To dobra odpowiedź. Ale Apache musi zostać zrestartowany, aby nowy moduł został pobrany.
JakeGould