Domanda

Farò una serie di circa 5 siti. Devono funzionare tutti sullo stesso sistema. Sto pensando di farli puntare tutti sullo stesso server, quindi a seconda del dominio utilizzato per accedervi, verranno offerti contenuti / stili diversi. Quindi essenzialmente saranno 5 o più siti di vendita specializzati specializzati in un particolare tipo di prodotto.

Ma tutti usano lo stesso codice back-end in modo che sia molto più facile da mantenere. Non ho mai creato nulla di simile prima e voglio sapere se ci sono informazioni che dovrei prendere in considerazione o se qualcuno conosce un buon posto che spiega come farlo bene?

Inoltre non stiamo ospitando noi stessi ma stiamo attraversando una società di hosting (se questo è importante).

Grazie!

È stato utile?

Soluzione

Sembra piuttosto semplice per me:

Basta avere una directory:

/var/www/siteLibraries/foo.php

O altra directory adatta. Quindi avere

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

e imposta il caricamento di classe predefinito in PHP ( http://uk.php.net/manual/en/language.oop5.autoload.php ) in modo che quando il sito specializzato crea un'istanza di una classe ... cercherà le librerie locali del sito (per specialista sostituisce) e quindi imposta automaticamente le librerie condivise Puoi anche organizzare i contenuti in questo modo.

Una breve spiegazione, ma una visione generale di come la affronterei se non dovessi preoccuparti di entrambi i siti che condividono le autorizzazioni (suppongo che i clienti non modificheranno il codice).

Ricorda: il tuo codice per sito dovrebbe specializzarsi dalla base di codice predefinita (OOP è ottimo per questo). Ciò che non è specifico, è condiviso. Naturalmente, la base di codice condivisa dovrebbe essere consapevole che è condivisa, quindi cose come registri dovrebbero specificare quale sito specifico stava utilizzando la libreria quando si verifica un errore e tutto il resto.

Buona fortuna

Altri suggerimenti

Attualmente sto scrivendo un sistema di gestione dei contenuti che risolve esattamente questo problema. Alcune cose che ho trovato utili a cui pensare.

Quando sviluppi i tuoi siti, riducili ciascuno al minimo comune denominatore. Cioè, quali elementi sono comuni a tutti i tuoi siti Web? Ad esempio, ogni sito Web avrà una serie di pagine e probabilmente una qualche forma di sistema di carrello della spesa.

Per il mio sistema, ho un file modello separato per ogni sito. In questo modo, tengo separati il ??mio PHP e HTML, il che rende le cose molto più facili. Una volta che avevo il minimo comune denominatore, la sfida più difficile per me era distinguere i siti.

Ho usato il mio file htaccess per reindirizzare example.com a www.example.com - in questo modo, posso quindi prendere in modo affidabile www.example.com dall'intestazione e usarlo per selezionare le informazioni per un determinato sito da il database.

Aiden ha anche alcuni punti positivi sul codice specifico. Per me, ho scoperto che il codice non era particolarmente il problema, ma piuttosto come ho implementato quel codice per un ambiente multi-sito.

Spero che questo aiuti.

Se vuoi che i tuoi siti abbiano basi di codice diverse, l'approccio di Aiden sembra piuttosto buono.

Se le tue esigenze sono più semplici, ovvero tutti i siti eseguono lo stesso codice, ma visualizzano contenuti diversi in base al nome del dominio, puoi anche scappare con una soluzione più semplice.

Punta tutti i domini nella stessa directory in cui vivono i tuoi script e differenzia il tipo di contenuto da inviare in base all'HTTP " Host " valore.

cioè:.

$host = 

Se vuoi che i tuoi siti abbiano basi di codice diverse, l'approccio di Aiden sembra piuttosto buono.

Se le tue esigenze sono più semplici, ovvero tutti i siti eseguono lo stesso codice, ma visualizzano contenuti diversi in base al nome del dominio, puoi anche scappare con una soluzione più semplice.

Punta tutti i domini nella stessa directory in cui vivono i tuoi script e differenzia il tipo di contenuto da inviare in base all'HTTP " Host " valore.

cioè:.

<*>

N.B: questo codice è a scopo illustrativo. Come scritto è vulnerabile all'iniezione SQL, è necessario proteggerlo in modo appropriato.

SERVER["HTTP_HOST"]; $rs = mysql_query("SELECT * FROM products WHERE website = '$host'"); // ...etc

N.B: questo codice è a scopo illustrativo. Come scritto è vulnerabile all'iniezione SQL, è necessario proteggerlo in modo appropriato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top