Que se passe-t-il lorsqu’un utilisateur final accède à un fichier PHP écrasé en même temps?

Je crée un processus de publication pour déployer des fichiers PHP nouvellement modifiés sur un serveur de production. Je voudrais savoir ce qui se passe lorsqu’un utilisateur final accède à la page Web de PHP en même temps qu’il est écrasé lors d’une version.

Existe-t-il des pratiques recommandées pour la publication de scripts Web et le codage des problèmes pouvant survenir dans le scénario ci-dessus?

Je voudrais savoir ce qui se passe lorsqu’un utilisateur final accède à la page Web de PHP en même temps qu’il est écrasé lors d’une version.

Cela dépend si le fichier a déjà été complètement écrasé. Si ce n’est pas complètement écrit, PHP essaierait d’parsingr le fichier incomplet, ce qui conduit normalement à une erreur.

Existe-t-il des pratiques recommandées pour la publication de scripts Web et le codage des problèmes pouvant survenir dans le scénario ci-dessus?

vous pouvez faire beaucoup de choses, comme empêcher l’access tant que vous mettez à jour des choses (en affichant une page de maintenance) ou en ayant plusieurs versions côte à côte et la possibilité de changer une version via le système de fichiers (liens symboliques ) ou configuration du serveur.

Il existe deux scénarios:

  • L’utilisateur commence à lire avant que l’écriture du fichier ne commence
  • L’utilisateur commence à lire après que l’écriture du fichier commence

Dans le premier scénario, l’utilisateur lit généralement l’ancien fichier (mais cela peut varier selon les systèmes de fichiers). Notez cependant que vous pouvez modifier plusieurs fichiers qui se comprennent mutuellement et, dans ce cas, l’utilisateur peut avoir des versions incompatibles des fichiers (par exemple, un fichier de la version 1.1 qui inclut soudainement un fichier de la version 1.2).

Dans l’autre scénario, l’utilisateur lira un fichier partiel, comme décrit dans hakre.

Il existe des serveurs FTP qui téléchargent l’intégralité du fichier sous un nom temporaire, puis le renomment lorsqu’il est entièrement téléchargé.

Il existe des moyens d’éviter complètement ces problèmes, par exemple en fermant le site pendant le téléchargement. Si vous avez un environnement équilibré, vous pouvez supprimer un serveur après l’autre et effectuer les mises à niveau en mode hors connexion sans fermer le site Web.