Запуск нескольких версий PHP с помощью Homebrew
Одной из проблем при создании решений на WordPress является работа с различными средами, которые предоставляет каждый хост.
То есть некоторые до сих пор используют очень старые версии PHP; другие используют более новые версии, но даже тогда среди них есть различия.
Показательный пример: я некоторое время запускал PHP 7.2 на своем локальном компьютере для разработки; однако в настоящее время я работаю над проектом, в котором некоторые зависимости от инструмента непрерывной интеграции поддерживают только PHP 7.1.
И поскольку мне нравится, чтобы моя среда разработки отражала промежуточную и производственную среды, я думаю, что важно убедиться, что существует паритет.
Если вы используете менеджер пакетов, довольно легко начать работу с несколькими версиями PHP с помощью Homebrew, но вы можете столкнуться с парой проблем, связанных с его запуском вместе с Valet.
Несколько версий PHP с Homebrew
Во-первых, вы хотите убедиться, что у вас установлен PHP 7.1. Для этого вы просто запускаете следующую команду в своем терминале. Это установит пакет, но не более того. Вы по-прежнему будете использовать любую версию PHP, которую используете в данный момент.
$ brew install php@7.1
После этого вам нужно указать Homebrew удалить созданную им символическую ссылку на текущую версию PHP, которую вы используете, а затем связать ее с пакетом, который вы только что загрузили.
Для этого введите следующую команду:
$ brew unlink php && brew link --force php@7.1
Помните все эти разговоры о ракушках? Вам нужно убедиться, что ваша оболочка — в данном случае Bash — знает версию PHP, которую вы хотите использовать.
export PATH="/usr/local/opt/php@7.1/bin:$PATH"
export PATH="/usr/local/opt/php@7.1/sbin:$PATH"
Затем перечислите все службы, на которых запущен brew. Вы можете сделать это, введя следующую команду:
$ brew services list
Как только вы это сделаете, вы увидите список запущенных служб, а также учетную запись, под которой запущены некоторые из них.
Если некоторые из них работают как root, вам нужно будет запускать и останавливать их с помощью sudo ; в противном случае вы можете остановить и запустить их, используя свои стандартные команды.
$ sudo brew services stop php
$ sudo brew services stop php@7.1
$ sudo brew services start php@7.1
После этого вы, вероятно, захотите перезапустить Valet, так как это обеспечит перезапуск PHP, Nginx и Dnsmasq.
$ valet restart
Это должно завершить все, что вам нужно сделать, чтобы поменять версии PHP.
Проверьте свою работу
Чтобы убедиться, что ваш веб-сервер действительно использует последнюю версию Nginx, я рекомендую создать один каталог (я называю его бета-версией), связать его с помощью Valet, а затем поместить файл index.php в каталог, содержащий phpinfo(); вызов функции.
Таким образом, вы можете получить все виды информации о вашей среде.
Отсюда вы должны увидеть некоторые варианты PHP 7.1 (или того, что вы установили). И если вы это сделаете, тогда вы можете идти; в противном случае вам может потребоваться снова удалить и переустановить Valet.
Но это немного экстремальный шаг, и все, что вы видите выше, должно позаботиться об этом.

