Возможно, вы захотите этого, но как человек, который умеет хорошо программировать на PHP и, соответственно, на Ruby, я могу сказать, что основная причина, по которой в Ruby есть системы контроля версий, - это просто огромное количество вещей, которые совершенно не работают, терпят неудачу или ломаются при смене версий. PHP гораздо более щадящий и понимающий устаревшие методы и функции.
Например, если вы сделаете переход с PHP 5.1.6 на PHP 5.4, при переходе с версий, которые не могут быть исправлены достаточно быстро, будет относительно мало что сломается. То есть, если что-то ломается, из ошибок PHP довольно ясно определить, что пошло не так. И PHP гораздо более обратно совместим, чем Ruby.
Тем не менее, вы всегда можете установить несколько версий модулей PHP вручную, а затем просто настроить конфигурацию Apache, перезапустить Apache и все готово. Например, у меня был клиент, у которого был устаревший код, который работал бы только с PHP 5.1.6. Поэтому я скомпилировал его из исходного кода в Ubuntu 11.04 (а затем 11.10 и 12.04), но удостоверился, что назвал модуль примерно так:
/usr/lib/apache2/modules/libphp516.so
Обычно установленный модуль PHP называется примерно так:
/usr/lib/apache2/modules/libphp5.so
Называя его libphp516.so
чтобы он охватывал и номер версии, я могу использовать несколько версий PHP.
После этого все, что мне нужно сделать для переключения версий, это отредактировать php5.load
расположенный здесь:
sudo nano /etc/apache2/mods-available/php5.load
Таким образом, он содержал такие строки:
# LoadModule php5_module /usr/lib/apache2/modules/libphp.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516.so
Закомментированная первая строка относится к уже установленной версии PHP, которая устанавливается через apt-get
/aptitude
. Строка ниже этого говорит Apache, чтобы загрузить модуль libphp516.so
. Перезапустите Apache, и теперь PHP 5.1.6 работает.
Но я знаю известную систему, которая будет управлять этим более плавно / на высоком уровне. Как я сказал с самого начала, я не знаю многих людей - кроме таких, как я, которые вынуждены делать это, - кому понадобился бы такой инструмент, потому что PHP гораздо более масштабируем и респектабелен, когда речь идет об унаследованном коде, чем Ruby. Две разные философии кодирования в игре.