Несколько версий PHP в одном окне

Возможно ли иметь несколько версий PHP, работающих в одном и том же поле (например, рельсы). Вот моя проблема: мне нужно приступить к разработке нового проекта и планировать использовать для него PHP 5.3, чтобы я мог использовать с ним последнюю структуру Zend и активную запись.
Однако на машине, где мне нужно разместить мое приложение, есть PHP 4.4, и там есть несколько других приложений. Я не хочу обновлять версию PHP на сервере, поскольку в прошлом я столкнулся с множеством проблем при обновлении версии PHP и устаревших функций.
Мне было интересно, возможно ли иметь несколько версий PHP в одном окне, а затем как-то указать версию, которую вы хотите загрузить в приложение (аналогично рельсам)

    Да, это возможно. Фактически, многие серверы работают таким образом. Время от времени вы можете видеть расширения .php4 и .php5, указывая, с какой версией должен обрабатываться конкретный скрипт.

    ServerFault обратился к этому вопросу

    Запуск php4 и php5 вдоль друг друга

    Вы можете запускать несколько версий PHP в одном окне с помощью Docker.

    Пример команды:

    sudo docker run -d -p 8055:80 -v /var/www:/var/www \ -v /etc/apache2/sites-available:/etc/apache2/sites-available \ -v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \ codeyourdream/apache-sendmail-php55 

    Вот что делает эта команда:

    • Он перенаправляет ваши локальные /var/www , /etc/apache2/sites-available и /etc/apache2/sites-enabled в соответствующие папки контейнера Docker. Если ваши локальные веб-сайты и / или конфигурации apache расположены в разных папках, замените первую часть значения -v . То есть формат: docker run -v /host/directory:/container/directory -other -options image_name command_to_run
    • Он перенаправляет порт 8055 вашей локальной машины на порт 80 контейнера Docker
    • Он запускает контейнер из изображения «codeyourdream / apache-sendmail-php55»

    Если вы запустите эту команду, все ваши локальные сайты должны быть доступны через порт 8055 (то есть через URL-адреса, такие как http: // localsite: 8055 ) и обрабатываться с помощью PHP 5.5

    Подробнее см. https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-one-linux-machine-using-docker . Примечание о присоединении: это блог моей команды.

    Возможность использования одной версии PHP в качестве модуля Apache, а другая версия – как CGI; но идея, которую я вроде как лучше, это иметь:

    • Несколько отдельных экземпляров Apache,
    • Каждый из них прослушивает другой порт (например, PHP 4.4 на порту 44000 и PHP 5.3.1 на порту 53100)
    • И каждый из них использует другую версию PHP

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

    (И если вы не хотите иметь номера портов в своих URL-адресах, я полагаю, вы можете поставить прокси перед вашими отдельными экземплярами Apache, так что кажется, что есть только один)