
Прошло некоторое время с тех пор, как здесь задавали этот вопрос. Возможно, рекомендуемое решение изменилось.
У меня есть почтовый сервер CentOS 5.4, на котором запущен веб-почта RoundCube. По умолчанию RoundCube ожидает PHP версии 5.2 или выше. CentOS 5 застрял на ревизии 5.1.6 с бэкпортами некоторых функций из 5.2. Я отключил проверку PHP для Roundcube, и она работает хорошо. Однако один из плагинов, который я хотел бы использовать, использует метод, представленный в PHP 5.2.
Из-за привязки PHP и Postgres/MySQL в этом случае, какой лучший способ обновить версию PHP с 5.1.6 до 5.2.x? Я видел сторонние репозитории, тестирование CentOS, Fedora... или я мог бы скомпилировать из исходников. Я хотел бы сохранить эту систему в стабильном состоянии, чтобы она не развалилась во время следующего раунда обновлений.
Есть ли какие-нибудь рекомендации?
решение1
Я делал это много раз, используяатомарные репозитории. Проще говоря, в большинстве ситуаций достаточно трех шагов:
wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
yum update php
service httpd restart
Разумеется, я не могу гарантировать, что это сработает у вас, но для меня это стало стандартным методом.
решение2
Просто установите репозиторий Remi. И запустите:
yum update -y
и дождитесь завершения обновлений, затем перезагрузите ваш VPS с помощью init:
init 6
Теперь вы успешно обновили PHP в своей системе.
решение3
Я бы сказал, что любой из этих методов МОЖЕТ работать нормально, но вы не узнаете, пока не попробуете, поэтому лучше убедитесь, что ваши резервные копии в порядке. При этом обновление php намного проще на Linux, чем на Windows, и я был бы удивлен, если бы у вас возникли какие-либо проблемы. Предполагая, что ваша установка, если не vanilla, то по крайней мере common, вам должно быть достаточно предварительно упакованного RPM.
Это возможнозапускать разные версии php на одном веб-сервере; к сожалению, вы можете запустить только один из них как модуль Apache, что заставит вас возиться с интерфейсом CGI.
Прелесть современного RPM в том, чтовы можете откатить установку. Это немного облегчит задачу.
С другой стороны, если вы собираете из исходников, вы можете просто собрать его в другом каталоге. Тогда все, что вам нужно сделать, это изменить, какой mod php загружает apache, и изменить местоположение файла php.ini, и вы обновитесь без какого-либо риска для вашей текущей конфигурации.
решение4
Я считаю, что существует ряд решений, и выбор того или иного решения зависит от вашего стиля системного администрирования.
«Простой» способ — установить PHP и связанные с ним пакеты из другого репозитория,как этот. Плюс в том, что это занимает меньше времени, минус в том, что вы доверяете внешнему источнику для ваших двоичных файлов в вашей системе, как для своевременных обновлений, так и для поддержания целостности и безопасности пакетов.
«Трудный» способ — скомпилировать свой собственный. Я говорю, что это «трудно», но на самом деле это не так уж и плохо. Я сохраняю все команды ./configure, поэтому, когда выпускается новый релиз, мне просто нужно использовать те же переключатели, чтобы сделать мою среду php такой же, как и в предыдущих релизах.
Для систем без особых требований я использую маршрутизацию rpm (на самом деле для этих систем отлично подходит 5.1), но для систем с пользовательскими PHP-окружениями я все равно компилирую из исходников.
Еще одно преимущество компиляции php самостоятельно заключается в том, что вы на самом деле понимаете и узнаете больше о программном обеспечении и о том, как оно работает на вашем сервере. Вы можете гордиться этим, и это выделит вас среди других системных администраторов!