Question

En général, mon développement couvrait uniquement les petites entreprises de taille moyenne et les sites de commerce électroniques.

Mon prochain projet comprendra 30 sites dire - cependant, ils ont environ 95% en commun avec l'autre. Je veux qu'ils aient 1 « cerveau » qui signifie que je peux déployer des changements, des mises à jour du cadre etc qu'une seule fois.

Je me demande si la famille Stack Overflow des sites faire (super-utilisateur, stackoverflow, serverfault etc).

Mes langues / plates-formes de choix sont PHP 5.3, MySQL 5 et le Cadre Kohana.

Le cerveau doit avoir

  • 1 système d'administration qui peut gérer tous les sites
  • tous les modèles existent dans le cerveau - mais ils ont des espaces réservés, par exemple, titre, logo, etc
  • Une façon donc je peux rouler toute mise à jour des modèles globaux filtrera automatiquement à tous les autres sites.

Je sais que cela mettrait beaucoup de stress sur le cerveau, donc je dois utiliser la mise en cache beaucoup côté serveur.

Comment aurais-je chaque accès au domaine du cerveau, par exemple:

http://www.mysite2.com/products/something

http://www.mothership.com/mysite2/products/something

Et que ce serait la meilleure façon de le faire? Avez-vous des conseils? Suis-je sur la bonne voie?

Ne hésitez pas à me poser plus de détails.

Était-ce utile?

La solution

La meilleure façon de le faire est avec l'hébergement virtuel. Fondamentalement, vous exécutez tous les sites sur une seule machine. L'une machine a une configuration Apache qui sert tous les sites.

Si les sites sont plus semblables que différents alors il suffit de pointer tous les sites à l'un répertoire. Les fichiers PHP peuvent détecter ce site, ils sont au service. Vous pouvez fournir un en-tête et pied de page pour chaque site pour gérer le look and feel. Vous pouvez également limiter certaines pages de cette façon.

Si les sites sont plus différents que semblables pointez chacun à un répertoire différent et avoir des pages pertinentes à ces sites dans chaque répertoire.

Pour des fonctionnalités communes que vous pouvez utiliser quelque chose comme mod_rewrite pour cartographier les URL sur les différents sites du même script ou vous pourriez avoir des scripts PHP à chaque emplacement qui include / require fonctionnalités communes.

En fait il y a beaucoup d'options. Votre objectif doit être rendre le site facile à entretenir et maintenir la duplication de code à un minimum absolu.

Comme l'a demandé, a suggéré la lecture:

Autres conseils

Vous pouvez y parvenir dans Apache en utilisant le <VirtualHost> Directive. Pour ce faire, sous Apache 2.x, modifier httpd.conf et cette ligne décommenter (généralement près de la fin du fichier): Include conf/extra/httpd-vhosts.conf. Ensuite, recherchez le fichier httpd-vhosts.conf et l'entrée du VirtualHosts dans ce format:

<VirtualHost 10.1.2.3>
DocumentRoot /home/site1
ServerName site1.com
</VirtualHost>

<VirtualHost 10.1.2.3>
DocumentRoot /home/site2
ServerName site2.com
</VirtualHost>

<VirtualHost 10.1.2.3>
DocumentRoot /home/site2
ServerName site3.com
</VirtualHost>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top