2 votes

Mise à jour vers la dernière version de PHP sur un serveur de production sous CentOS 7

Je fais tourner un serveur de production avec CentOS 7 et PHP 7.1. J'aimerais BEAUCOUP passer à PHP 7.4 mais je suis nerveux à l'idée de le faire sur un serveur de production. Je ne suis pas le meilleur administrateur système du monde, donc j'ai 3 questions, je m'excuse si elles sont stupides/évidentes pour d'autres :-)

  1. Je dois mettre à jour toutes mes extensions PHP (comme openssl, pdo_mysql, iconv, json, gd, phar, pdo, libmagic, et un zillion d'autres) en même temps, n'est-ce pas ? Je ne peux pas utiliser les extensions existantes ? Cela signifie-t-il que je dois faire une liste de toutes ces extensions, puis rechercher les versions 7.4 pour être sûr de pouvoir les mettre à jour en même temps que les fichiers PHP principaux ? (Ou existe-t-il un moyen automatisé de mettre à jour PHP et toutes les extensions existantes ? Je ne sais pas s'il existe un moyen automatisé de mettre à jour PHP et toutes les extensions existantes, mais je pense que le faire "à la main" représente beaucoup de travail, et qu'il y a beaucoup de risques de se tromper. Je me demande s'il n'y a pas une solution plus élégante que j'ai oubliée).

  2. Tout cela sur un serveur de production (où PHP 7.1 fonctionne en tant que php-fpm sous nginx). AFAIK, la seule option que j'ai pour la mise à jour est de mettre mon site hors ligne pour maintenance, puis d'essayer de faire la mise à jour en espérant qu'il n'y ait pas de problème. Est-ce bien le cas ? Si oui, comment puis-je minimiser l'impact ? Je préférerais que PHP 7.4 fonctionne parfaitement avec la version 7.1 existante, puis passer à la 7.4 d'un seul coup, mais je n'arrive pas à comprendre comment. (EDIT : Je dois ajouter que je n'utilise pas Docker ou tout autre type de virtualisation. Quand je fais whereis php Je reçois : php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/share/php /usr/share/man/man1/php.1.gz )

  3. La meilleure façon d'améliorer la qualité est d'utiliser des images prédéfinies proposées par d'autres, comme par exemple Le RPM Repo de Remi ?

Merci.

3voto

Remi Collet Points 2021
  1. Je dois mettre à jour toutes mes extensions PHP

Oui, il existe une dépendance à l'égard de l'API/ABI interne.

  1. Je préférerais de loin que PHP 7.4 fonctionne parfaitement avec la version 7.1 existante.

Cela est possible grâce aux collections de logiciels qui permettent l'installation parallèle de différentes versions.

Avec FPM en particulier, il est assez facile d'exécuter plusieurs instances (1 par version), et de sélectionner l'instance utilisée pour chaque hôte virtuel / application / répertoire.

Vous pouvez ensuite changer de site un par un.

Vous pouvez lire : Conseils de configuration de PHP

Bien entendu, je recommande de tester chaque application sur un environnement de test dédié, avant d'exécuter la mise à niveau sur l'environnement de production.

  1. La meilleure façon d'améliorer la qualité de l'information est d'utiliser des images prédéfinies proposées par d'autres organismes.

Bien sûr, je réponds oui ;) Je pense qu'il est préférable d'utiliser des binaires standards, utilisés sur des milliers de serveurs, plutôt que de construire à partir des sources. De plus, avoir des outils de développement installés sur un serveur de production est une très mauvaise pratique (du point de vue de la sécurité).

Pour une installation correcte, voir le L'assistant de configuration de Remi instructions.

0voto

user12345 Points 514
  1. Je dois mettre à jour toutes mes extensions PHP (comme openssl, pdo_mysql, iconv, json, etc) en même temps, n'est-ce pas ? Je ne peux pas utiliser les extensions existantes ? oui

  2. AFAIK, la seule option que j'ai pour la mise à jour est de mettre mon site hors ligne pour maintenance, puis d'essayer de faire la mise à jour en espérant qu'il n'y ait pas de problème. Est-ce exact ? Non, vous pouvez mettre à jour sans mettre votre site hors ligne, vous pouvez installer PHP 7.4 sans désinstaller PHP 7.1. Il suffit donc d'installer PHP 7.4 d'abord, puis de basculer la configuration de Nginx vers PHP 7.4. Mais vous devez redémarrer Nginx (cela peut prendre de 1 à 5 secondes).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X