web-dev-qa-db-fra.com

Puis-je configurer deux WordPress serveurs; un serveur de lecture-écriture sur un intranet local, qui est ensuite synchronisé avec un serveur Internet public en lecture seule?

Contexte

J'ai un site Web configuré pour exécuter WordPress. J'ai plusieurs personnes qui ont besoin d'un accès de connexion pour gérer le logiciel. Ils accèdent tous au site Web à partir du même emplacement physique, et j'ai accès à un intranet de l'entreprise.

Pratique standard (?)

Normalement, ils se connecteraient directement au site Web et leurs modifications seraient apportées à la base de données en direct.

Mes objectifs

  1. Je veux que le site Web public soit inaccessible autant que possible. Je veux zéro WordPress _ connexions.

  2. Je veux la duplication de données, au cas où le serveur en direct tombe en panne.

Plan

Je souhaite configurer un système en deux parties, avec une copie interne du site Web hébergée sur un intranet de la société, accessible uniquement aux utilisateurs appartenant au réseau interne. Ils vont faire des modifications là-bas.

Je prévois ensuite d’utiliser la réplication maître-esclave MySQL pour dupliquer les données de la copie intranet (maître) à la copie dynamique (esclave), avec quelques modifications apportées à la copie dynamique, telles que la désactivation complète des connexions des utilisateurs.

enter image description here

Question

Est-ce un bon plan? Ou y a-t-il une meilleure option? (Je suis un développeur front-end qui a été lancé dans la gestion de la base de données, donc il y a probablement beaucoup de choses que je ne connais pas.)

2
Andy Mercer

Réponse

Techniquement, c'est possible, mais c'est trop compliqué. Il y a de meilleures façons.

Certaines raisons

Quelques problèmes que j'ai rencontrés en essayant ceci:

  1. Vous devez synchroniser les deux fichiers de la base de données ET le dossier physique "WP Uploads" en même temps, chaque fois qu'une modification est apportée.
  2. Vous auriez à trouver un moyen d’attribuer l’auteur au serveur frontal, sur le serveur Live qui n’a pas de compte utilisateur. La seule façon pour moi de faire cela est de mettre en miroir la table Users avec un CTP, appelé UsersFake. Avoir un champ de métadonnées masqué sur les publications, qui copie l'auteur de la publication. Utilisez ensuite FakeUsers pour créer la section "Auteur" front-end à la fin de chaque article de blog. J'ai joué un peu avec ça mais ça s'est vraiment compliqué très vite.

En gros, ça ne vaut pas la peine.

Ce que j'ai fait à la place

À la place, je me suis orienté vers la combinaison du verrouillage IP pour les connexions, avec un système de sauvegarde instantanée sur le serveur actif.

1
Andy Mercer

Fonctionne à peu près de la même manière. C'est juste que vous pouvez avoir deux domaines uniques pointant vers le même serveur, et le serveur aura des règles DNS pour diriger le trafic entrant vers la partie correcte du serveur. Du côté du dossier du serveur, il semblerait presque identique à ce que vous avez configuré, avec différents sites WordPress dans différents sous-répertoires.

1
Paul Sanders

Je suppose que c'est possible. This answer peut être utile. Tout ce que vous devez ensuite faire sur l’instance publique est de trouver une case à cocher dans Paramètres> Général qui dit "Tout le monde peut s’inscrire". Décochez cette case. Lorsqu'une personne accède à la page de connexion, il n'y aura plus de lien "Enregistrer" qu'elle pourra utiliser. Ensuite, vous bloquerez probablement le compte administrateur par défaut si vous le souhaitez.

1
sau226