J'ai récemment changé mon serveur web pour Centos 6.3, avec apache 2.2.15, PHP 5.4.11 et APC 3.1.14.
J'ai commencé à recevoir de temps en temps des plaintes de clients qui me signalaient qu'une page ne fonctionnait pas ou que des erreurs étranges apparaissaient. J'ai constaté que les pages concernées comportaient des points d'interrogation et d'autres symboles étranges à des endroits aléatoires de la sortie, même si les sources sont correctes. Lorsque je change une seule lettre dans le fichier source, la page commence à fonctionner correctement.
Je soupçonne l'APC, mais je ne trouve aucun indice permettant de savoir quand et pourquoi cela se produit.
J'utilise mercurial pour pousser les changements vers la production, mais j'utilise cette approche depuis des années sans aucun problème. Peut-être que quelque chose dans la configuration est nouveau maintenant, mais malheureusement je n'ai pas gardé mon ancienne configuration.
Vous trouverez ci-dessous une capture d'écran de la dernière corruption.
Edit : Voici la réponse après avoir changé un seul caractère dans la source, l'avoir sauvegardé, puis avoir annulé les fichiers (c'est la même chose si je redémarre le serveur web ou si j'efface le cache des opcodes d'APC) :
Remarquez que les numéros de ligne ne correspondent pas, mais il s'agit à 100 % de la même demande, donc la réponse devrait être la même aussi. La ligne 111 de la première capture d'écran ne devrait pas être là du tout. Il semble qu'elle provienne d'un autre fichier source...