У нас есть два веб-сервера с балансировкой нагрузки, на которых работает php 5.3. Наша команда разработчиков попросила обновить php до 5.4, потому что им нужна определенная функциональность, которую он принесет. Основная проблема заключается в том, что версия 5.3 - это последняя версия, встроенная в репозиторий дистрибутивов, поэтому для обновления с помощью диспетчера пакетов мне нужно добавить еще одно стороннее репо. У меня нет проблем с этим как таковым, но меня беспокоит использование пакета из «неофициального» источника.
Другой вариант - скомпилировать php из исходного кода, но я думаю, это помешает мне использовать диспетчер пакетов для обновления на любом этапе в будущем?
Так что, я думаю, я просто ищу совета, какой путь двигаться дальше. Скомпилировать из исходного кода или установить из любого старого репозитория, предназначенного для поставки php 5.4? Или, может быть, есть третий вариант, который я не рассматривал?
На самом деле ваша настоящая проблема заключается в том, чтобы сделать это в производство Окружающая среда. Я имею в виду, что вы должны максимально сократить время простоя и спланировать процедуры восстановления (отката) на случай, если что-то пойдет не так.
Обычно меня волнует не «официальность» репозитория, а «репутация». Я не привык думать, что «неофициальные» общедоступные репозитории с открытым исходным кодом внедряют вредоносные программы в пакеты (проблема безопасности), и я действительно думаю, что, если они популярны и широко используются, они находятся в хорошем состоянии (проблема надежности).
Если вас действительно беспокоит использование неофициального репозитория, у вас есть более сложный вариант: скомпилировать из исходного кода, а затем перезаписать PHP при обновлении официального репо. Это создает риск.
Вот моя стратегия.
Сначала сделайте реплицируемый снимок приложения. Соберите файлы, записи в БД и все, что необходимо для запуска приложения на новом сервере (если вы хотите сбалансировать нагрузку с помощью 3, но на самом деле этого не хотите). Это будет ваша процедура отката.
Во-вторых, сделайте снимок сервера с текущей установкой PHP. Подходит полный образ системы. Сохраните это как золотой образ. Вы сделаете резервную копию своего приложения вместе с сервером, но это нормально.
В-третьих, сделайте исходную компиляцию, возможно, сначала попробуйте ее в постановке.
В-четвертых, когда ваше официальное репо будет обновлено, сделайте новый снимок приложения, восстановите старый золотой образ сервера, обновите PHP, а затем обновите приложение до снимка, который вы только что сделали.
Если что-то пойдет не так, у вас всегда есть:
Я лично предпочитаю компилировать из исходников, если вам нужна последняя версия чего-либо. Однако похоже, что вы еще не проводили тестирования, и, учитывая проблемы, которые могут возникнуть, я настоятельно рекомендую вам провести тестирование в автономном режиме.
Для этого я предлагаю вам создать виртуальную машину, которая будет настолько точной копией действующей системы, насколько это возможно. Сделайте свое обновление на этом. Вы даже можете протестировать каждый метод и посмотреть, что лучше всего подходит для вас.
Прежде всего, если на сервере есть что-то еще, использующее PHP, убедитесь, что оно все еще работает правильно после обновления. Обновления PHP печально известны нарушением работы приложений, даже с подпунктами, не говоря уже о полной версии.