Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/02/2013, à 09:30

Warrows

synchro web

Bonjour,
Je dispose d'un serveur web basique utilisant PHP et MySQL. Ce serveur est accessible sur internet. Maintenant je voudrais créer une copie du site web sur un serveur dans un réseau local. Ce réseau local est parfois privé d'accès internet et je voudrais y assurer un accès constant au site. Il faudrait donc que le serveur local se synchronise sur celui d'Internet régulièrement (bdd et code) et se contente d'effectuer une redirection lorsque celui ci est accessible. Lorsque il ne l'est pas, il devrait s'y substituer puis mettre à jour la Bdd (et le code si possible) lors du retour en ligne.
Existe-t-il des outils gratuits permettant de gérer cette situation ?

Hors ligne

#2 Le 19/02/2013, à 11:04

tiramiseb

Re : synchro web

1/ La synchronisation unidirectionnelle est plutôt facile à mettre en oeuvre, c'est plutôt bien documenté : réplication MySQL pour la base, rsync pour le code.
2/ La redirection automatique si le serveur d'Internet est accessible est faisable :
    - soit directement dans le code PHP : une vérification de dispo d'Internet à chaque accès et renvoi vers le serveur sur Internet ;
    - soit par un script exécuté régulièrement (genre toutes les 2 minutes) sur le serveur interne qui change la configuration d'Apache selon la disponibilité d'Internet.
3/ La remontée des données dans la base de données doit être gérée semi-automatiquement par un code qui connaît la structure interne de la base et qui saura gérer les conflits.
4/ Si tu veux synchroniser le code dans le cas d'une modification du code sur le serveur interne, tu peux mettre une synchronisation bidirectionnelle avec Unison par exemple.

Le plus dur est la gestion des conflits : que se passe-t-il si une même information a été modifiée, créée ou supprimée sur les deux serveurs quand ils ne pouvaient pas communiquer ? qui a la priorité ? que doit devenir la valeur ? Ça dépend de ton application, de la manière dont elle fonctionne, des résultats voulus...


En conclusion, je dirais que c'est tout à fait faisable, c'est facile si on a les bonnes connaissances, et ça reste abordable si tu t'y colles sérieusement.

Dernière modification par tiramiseb (Le 19/02/2013, à 11:05)

Hors ligne