Назад | Перейти на главную страницу

Использование виртуальных машин для работы с разными версиями PHP

Я ищу способ, чтобы наша команда могла иметь как среду php 5.6, так и среду php7 на наших локальных машинах для разработки.

У нас есть множество сайтов, некоторые из которых имеют живую среду с php7, но большинство 5.6. Забегая вперед, мы хотим, чтобы все сайты были развернуты на сервере под управлением php7.

Мы всегда использовали XAMPP для локальной разработки - обновление до php7 было не особенно простым и требовало много времени - чего я бы хотел, чтобы мы избегали в будущем. Насколько я понимаю, это также означает, что мы не можем запустить apache с 5.6, а затем переключиться на php7 и наоборот - по крайней мере, без некоторых сложных и потенциально проблемных изменений конфигурации, которые необходимо будет реплицировать на каждой машине.

Какое лучшее решение для этого? Я слышал и читал о Docker и Vagrant - это то, что я описываю, для решения чего предназначены и Docker, и Vagrant? Я вижу, что есть библиотеки коробок для обоих, но я не вижу ничего более простого, чем, например, «php7 LAMP». Среды, предоставляемые XAMPP, идеально подходят, за исключением того, что нельзя переключаться между ними для разных сайтов.

Мы будем очень благодарны за некоторые указатели на лучший подход.

Простое решение - просто использовать VirtualBox и создать две виртуальные машины - для PHP 5.6 и PHP7.

Практически нет разницы в производительности, если вашим компьютерам меньше 5 лет и они оснащены быстрыми дисками (например, SSD).

Вместо того, чтобы использовать выделенные виртуальные машины, я настоятельно рекомендую вам использовать php-fpm и (при использовании apache 2.4 в качестве веб-сервера) mod_proxy_fcgi

С его помощью вы в основном создаете / настраиваете пул потоков, готовых к php, причем каждый пул потенциально запускает другую версию php (например: 5.4, 5.6, 7.x). В свою очередь, веб-сервер использовал протокол FastCGI для взаимодействия с этими пулами.