Запуск кількох версій 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.
Але це дещо екстремальний крок, і все, що ви бачите вище, має подбати про це.

