Le serveur lance encore un fichier effacé

Le serveur lance encore un fichier effacé - PHP - Programmation

Marsh Posté le 09-09-2009 à 12:15:16    

Bonjour,  
 
Une collègue et moi avons rencontré chacun de notre côté le même problème. Moi, c'était avec mon serveur wamp, elle sur un serveur PHP distant sur lequel elle a le droit d'écrire, de modifier ou d'effacer des fichiers, mais qu'elle ne peut pas configurer à sa guise.
 
Quand on modifie un fichier PHP, c'est toujours l'ancien code qui fonctionne avec le navigateur.
Quand on efface un fichier PHP, tout se passe sur le navigateur.
Quand on ajoute un fichier PHP, le navigateur ne le voit pas.
 
Le premier réflexe, c'est d'arrêter le navigateur après en avoir vidé le cache et de le relancer. Mais le problème persiste.
Une consultation par Telnet montre que les fichiers modifiés ou ajoutés sont bien présents au bon endroit et avec le bon contenu sur le disque dur du serveur. Les fichiers effacés ont bien disparu. Mais le serveur PHP continue à ne traiter que les versions antérieures à la modification.
 
Le problème ne me bloque pas vraiment car il me suffit d'arrêter Wamp et de le relancer pour que le serveur PHP accepte de tenir compte de mes changements. De son côté, ma collègue doit appeler le service qui s'occupe de son serveur.
 
Quelqu'un peut-il expliquer précisément les mécanismes mis en jeu, et qui font que le serveur mémorise un état et s'y tient tant qu'il n'est pas relancé ?
Accessoirement, y a-t-il un moyen plus commode pour y remédier que d'arrêter et redémarrer le serveur ?

Reply

Marsh Posté le 09-09-2009 à 12:15:16   

Reply

Marsh Posté le 09-09-2009 à 19:04:46    

Yaurait pas du cache cote serveur? Sinon vous modifiez quoi comme fichiers exactement? Ca fait parti d'un cms?


---------------
App Android NextGP : Store - TU | Makerworld
Reply

Marsh Posté le 10-09-2009 à 10:24:32    

Je pense effectivement à un cache, mais aussi à une confusion entre ce que reconnaît un système d'exploitation et ce que reconnaît un serveur Web. Ce n'est pas parce qu'un fichier est présent sur un disque que le serveur va le prendre en compte. (Je ne sais pas où précisément ma collègue envoie ses fichiers, ni si elle a tous les droits voulus dans chaque répertoire)
 
Ce qui est modifié chez ma collègue, c'est par exemple quelque chose du genre :
<td><?php echo ("Toto" ); ?></td>
qui devient :
<td>Bonjour <?php echo ("Toto" ); ?></td>
 
(Je ne me rappelle plus exactement ce qui provoquait le même effet quand je l'ai moi aussi rencontré, mais ça devait être sur un exemple assez proche).
 
Le fichier modifié est recopié sur le serveur, et le navigateur, relancé après vidage de son cache, continue à n'afficher que Toto.
Si le fichier est supprimé sur le serveur, après les mêmes manips sur le navigateur, on a toujours l'affichage de Toto.
Si le fichier est recopié sous un autre nom et que le navigateur appelle ce nouveau fichier, il ne le trouve pas.
 
Ma collègue développe à partir d'Eclipse et moi à partir de Dreamweaver. J'utilise un serveur Wamp en local pour développer et un autre distant de quelques bureaux, connecté à Internet pour la maquette de test. Je peux sans problème redémarrer son serveur Web en me bougeant de mon siège.
Je ne sais pas quel serveur utilise ma collègue (et elle non plus, je suppose), auquel elle accède par Telnet. Elle ne peut pas relancer le serveur.
 
Le problème n'est pas systématique, car je me rappelle avoir été très énervé un jour où aucune de mes modifications n'avait plus d'effets. Pour ma collègue, il y a d'autres fichiers avec lesquels le problème ne se pose pas. Je lui ai suggéré de tester son fichier dans un répertoire où les fichiers réagissent normalement, même si les droits ont l'air d'être les mêmes que ceux du répertoire où ça foire.
 
Il y a très probablement un détail trivial sur lequel je n'ai pas bien percuté et qui fait que dans certains cas ça marche et dans d'autres ça ne veut rien savoir. C'est pourquoi je souhaite avoir un peu plus d'infos sur le fonctionnement d'un serveur Web. A commencer par un cache possible et sa gestion.
 

Reply

Marsh Posté le 10-09-2009 à 10:33:32    

vous utilisez un proxy ?

Reply

Marsh Posté le 10-09-2009 à 11:57:56    

Bonne question. Moi, oui. Ma collègue aussi, très probablement. Le proxy n'empêche pas le téléchargement des versions modifiées, ni l'effacement ou l'ajout de fichiers par telnet pour ce qui concerne ma collègue. Pour moi, il va falloir que je vérifie car j'utilise une clef USB pour reporter sur le serveur mes modifications.

Reply

Marsh Posté le 10-09-2009 à 13:29:18    

OK pour le navigateur mais si tu accéde au meme fichier par ssh ou telnet, vas tu voir les modifs du code source?

 

Si oui, je pencherais pour une config d'apache exotique (mod_cache activé ?)


Message édité par bixibu le 10-09-2009 à 13:30:05

---------------
App Android NextGP : Store - TU | Makerworld
Reply

Marsh Posté le 10-09-2009 à 14:47:31    

Par telnet on voit bien les modifications apportées au fichier. Ou bien on peut vérifier qu'il a été effacé. Mais le serveur continue sur la version  précédente, ce qui fait penser à un cache.
Je ne connais pas mod_cache, mais rien que le nom a l'air explicite. Une façon d'accélérer les réponses en stockant quelque part une copie des fichiers ? On en parle dans le fichier change.txt de mon Wamp, signe qu'il doit connaître ce truc-là. Reste à trouver comment et où ça s'activerait pour vérifier cette piste.

Reply

Marsh Posté le 10-09-2009 à 16:44:40    

Problème résolu pour ma collègue. Un truc de ouf. On lui a rebalancé un projet existant à améliorer et dédié un espace sur le serveur pour y travailler (si j'ai bien compris ses explications). Tout ce qu'elle crée à un certain niveau fonctionne. Mais les liens pointent sur un autre espace de travail que le sien, sur des fichiers qu'elle ne voit pas. Juste une ligne à changer dans un fichier de configuration pour éviter deux jours à se creuser la tête.
 
Sur mon serveur, je n'ai pas cette configuration (encore ça mériterait d'être vérifié de près, maintenant qu'un piège possible est connu). Comme je n'ai pas retouché à l'appli concernée depuis un bout de temps, je ne sais même pas si le problème existe encore chez moi.
 
Il s'est quand même dit ici des choses intéressantes, et pour qui voudrait creuser un peu la question voici un lien pour essayer de comprendre tout ça, voir http://httpd.apache.org/docs/2.2/fr/caching.html.
On y parle aussi d'une mise en cache par l'intermédiaire du système d'exploitation, qui serait peut-être une explication plus pertinente dans mon cas, vu que les modules suspects ne sont pas activés chez moi.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed