Я использую производственный сервер с CentOS 7 и PHP 7.1. Мне бы очень понравилось обновиться до PHP 7.4, но я нервничаю по поводу того, чтобы сделать это на рабочем сервере. Я не лучший системный администратор в мире, поэтому у меня есть 3 вопроса, извиняюсь, если они тупые / очевидные для других :-)
Мне нужно обновить все мои расширения PHP (например, openssl, pdo_mysql, iconv, json, gd, phar, pdo, libmagic и еще много других) одновременно, верно? Я не могу использовать существующие расширения? Значит ли это, что мне нужно составить список всех этих расширений, а затем получить версии 7.4, чтобы быть уверенным, что я могу обновить их все одновременно с обновлением основных файлов PHP? (Или есть какой-то автоматический способ обновления PHP и всех существующих расширений? Выполнение этого «вручную» - это большая работа и большой потенциал, чтобы что-то испортить. Мне просто интересно, есть ли более элегантное решение, которое Я не замечаю.)
Это все на производственном сервере (где PHP 7.1 работает как php-fpm под nginx). Насколько мне известно, единственный вариант, который у меня есть для обновления, - это отключить мой сайт для обслуживания, а затем попытаться выполнить обновление и надеяться, что все пойдет не так, как надо. Это правильно? Если да, то как я могу минимизировать воздействие? Я бы предпочел, чтобы PHP 7.4 работал идеально вместе с существующим 7.1, а затем переключился на 7.4 одним быстрым переключателем, но не могу понять, как это сделать. (EDIT: я должен добавить, что я не использую Docker или какой-либо другой вид виртуализации. Когда я whereis php
Я получил: php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/share/php /usr/share/man/man1/php.1.gz
)
И тогда лучший способ обновления - это ... использовать готовые образы, которые кто-то предлагает, например Репо Реми по RPM?
Спасибо.
- Мне нужно обновить все мои расширения PHP
Да, есть зависимость от внутреннего API / ABI
- Я бы предпочел, чтобы PHP 7.4 отлично работал вместе с существующим 7.1.
Это возможно с помощью коллекций программного обеспечения, которые позволяют параллельно устанавливать различные версии.
Особенно с FPM довольно легко запускать различные экземпляры (по 1 на версию) и выбирать используемый экземпляр для каждого виртуального хоста / приложения / каталога.
Затем вы можете переключать сайты один за другим.
Ты можешь читать: Советы по настройке PHP
Конечно, я рекомендую протестировать каждое приложение в специальной тестовой среде, прежде чем запускать обновление в производственной среде.
- И тогда лучший способ обновления - это ... использовать готовые образы, которые кто-то предлагает
Конечно, я отвечаю да;) Я думаю, что лучше использовать стандартные двоичные файлы, используемые на тысячах серверов, чем строить из исходников. Кроме того, установка инструментов разработки на производственном сервере - очень плохая практика (с точки зрения безопасности).
Для правильной установки см. Мастер настройки Реми инструкции.
нужно обновить все мои расширения PHP (например, openssl, pdo_mysql, iconv, json и т. д.) одновременно, верно? Я не могу использовать существующие расширения? да
Насколько мне известно, единственный вариант, который у меня есть для обновления, - это отключить мой сайт для обслуживания, а затем попытаться выполнить обновление и надеяться, что все пойдет не так, как надо. Это правильно? Нет, вы можете выполнить обновление, не отключаясь от сети, вы можете установить PHP 7.4, не удаляя PHP 7.1. Так что сначала установите PHP 7.4, а затем переключите конфигурацию Nginx на PHP 7.4. Но вам нужно перезапустить Nginx (может занять 1-5 секунд).