1

Я всегда использовал официальные репозитории Ubuntu для установки PHP, но после игры с такими инструментами, как rbenv и rubybuild для установок Ruby, мне интересно, существуют ли лучшие инструменты / методы для установки PHP. В частности, я хотел бы иметь точный контроль над тем, какую именно версию PHP я хочу установить, вместо того, чтобы просто получить какую-либо версию Canonical для меня.

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

1 ответ1

0

Возможно, вы захотите этого, но как человек, который умеет хорошо программировать на 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. Две разные философии кодирования в игре.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .