2009-06-24 7 views
0

Je vais faire une série d'environ 5 sites. Ils doivent tous fonctionner sur le même système. J'ai l'intention de les faire pointer tous vers le même serveur, puis selon le domaine utilisé pour y accéder, différents contenus/styles seront servis. Donc, il va essentiellement être 5 ou plusieurs sites de vente au détail spécialisés dans un type de produit particulier.Multiplier des sites sur le même code de partage de serveur

Mais tout en utilisant le même code back-end afin qu'il soit beaucoup plus facile à entretenir. Je n'ai jamais rien fait de tel auparavant et je veux savoir s'il y a des informations à prendre en compte ou si quelqu'un connaît un bon endroit qui explique comment bien faire ça?

Aussi, nous ne sommes pas nous hébergeons mais en passant par une société d'hébergement (si cela importe).

Merci!

Répondre

2

Sons assez simple pour moi:

Juste un répertoire:

/var/www/siteLibraries/foo.php 

ou autre répertoire approprié. Alors

/var/www/site1/foo.php 
/var/www/site2/foo.php 

et configurer le PHP (http://uk.php.net/manual/en/language.oop5.autoload.php) de chargement de classe par défaut de sorte que lorsque le site spécialisé instancier une classe ... il recherchera les bibliothèques locales du site (pour les remplacements spécialisés), puis par défaut les bibliothèques partagées. Vous pouvez également organiser le contenu de cette façon.

Une brève explication, mais un bref aperçu de la façon dont je l'aborder si vous n'avez pas à vous soucier de deux sites de partage de permissions (je suppose clients wont code d'édition).

Rappelez-vous: votre code par site devrait se spécialiser à partir de la base de code par défaut (POO est grand pour cela). Ce qui n'est pas spécifique est partagé. Bien sûr, la base de code partagée devrait être consciente qu'elle est partagée, donc des choses comme les journaux devraient spécifier quel site spécifique utilisait la bibliothèque lorsqu'une erreur se produisait et tout ça.

Bonne chance

0

Je suis en train d'écrire un système de gestion de contenu qui aborde cette question précise. Quelques choses que j'ai trouvé utiles à penser.

Lors du développement de vos sites, réduire les chacun au plus petit dénominateur commun. Autrement dit, quels sont les éléments communs à tous vos sites Web? Par exemple, chaque site aura une série de pages, et probablement une forme de système de panier.

Pour mon système, je dispose d'un fichier de modèle distinct pour chaque site. De cette façon, je garde mon PHP et HTML séparés, ce qui rend les choses beaucoup plus faciles. Une fois que j'ai eu le plus petit dénominateur commun, le défi le plus difficile pour moi était de distinguer les sites. J'ai utilisé mon fichier htaccess pour rediriger example.com vers www.example.com - de cette façon, je peux ensuite récupérer www.example.com de manière fiable à partir de l'en-tête, et l'utiliser pour sélectionner les informations pour un site donné de la base de données.

Aiden a aussi quelques bons points sur le code spécifique.Pour moi, j'ai trouvé que le code n'était pas particulièrement le problème, mais plutôt comment j'ai implémenté ce code pour un environnement multi-site.

Espérons que cela aide.

0

Si vous voulez que vos sites aient des bases de code différentes, l'approche d'Aiden est plutôt bonne. Si vos besoins sont plus simples, c'est-à-dire que tous les sites utilisent le même code mais affichent un contenu différent en fonction du nom de domaine, vous pouvez également obtenir une solution plus simple.

Pointez tous les domaines vers le même répertoire que celui de vos scripts et différenciez le type de contenu à envoyer en fonction de la valeur HTTP "Host".

i.e. .:

$host = $_SERVER["HTTP_HOST"]; 

$rs = mysql_query("SELECT * FROM products WHERE website = '$host'"); 

// ...etc 

N.B.: Ce code à titre d'illustration. Comme écrit, il est vulnérable à l'injection SQL, vous devriez le protéger de manière appropriée.

Questions connexes