Я пытаюсь обновить версию PHP с 7.1 до 7.2 на macOS и с помощью Homebrew.

Я сделал следующие шаги:

brew install php72

brew services stop php71
brew unlink php71

brew link php72
brew services start php72

Казалось, все работает нормально. Когда я делаю php --version я получаю:

PHP 7.2.9 (cli) (сборка: 16 августа 2018 г. 21:40:59) (NTS) Copyright (c) 1997-2018 PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies с Zend OPcache v7.2.9, Copyright (c) 1999-2018, Zend Technologies

Но если я попытаюсь запустить PHP-скрипт с phpinfo() информация все равно будет иметь вид PHP версии 7.1.20.

Если я запускаю brew services list меня работают следующие службы:

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
php@7.1    stopped

Что может быть причиной?

1 ответ1

0

brew unlink php71 и brew link php72 вашу командную строку php на правильный путь и версию, но на Apache это не повлияет, пока вы не измените его конфигурационный файл.

Сначала найдите путь к файлу httpd.conf :

httpd -V | grep SERVER_CONFIG_FILE

Вы также можете проверить:

apachectl -t -D DUMP_INCLUDES

Затем:

  • Откройте файл httpd.conf и найдите строку, начинающуюся с LoadModule php
  • Прокомментируйте эту строку с # и добавьте вместо нее строку 7.2. Вы можете получить свою строку, запросив следующую команду в Терминале:
  • brew info php@7.2 | grep LoadModule
  • это должно выглядеть так: LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
  • Наконец, перезапустите Apache: sudo apachectl restart
  • ваш скрипт должен работать с версией php7.2

Здесь также есть подробные инструкции по использованию переключателя php. После установки вы можете переключаться с одной версии на другую следующим образом (она автоматически свяжет Apache и командную строку):

sphp 7.1
sphp 7.2
sphp 5.6
etc..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .