Installazione di più siti "multisite Drupal"

Posts: 48
Iscritto il: 22 Apr 07

Ciao ragazzi...
Allora, per prima cosa vi chiedo: sto lavorando in locale, ma mi servirebbe simulare diversi siti con drupal...ho letto di name-based-virtual-host, che mi permette di avere diversi url sulla stessa macchina...Ne sapete qualcosa?...


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Guarda sul mio sito... configurazione di XAMPP
Ti fa vedere come inserire i vair VirtualHost di apache e modificare il file hosts di win per aggirare i DNS. Se sei su linux la cosa da fare è abbastanza simile.

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Ho letto quel che c'è sul tuo sito...interessante e l'ho anche eseguito...però non so come fare una cosa: se voglio realizzare 2 siti completamente diversi con drupal (in locale) e voglio utilizzare VirtualHostNameBased per assegnare loro diversi url come ad esempio http://www.sito1 e http://www.sito2, come devo fare?...
Posso mettere nel file di windows host lo stesso indirizzo 127.0.0.1 con 2 diversi nomi?...
Sto lavorando in c:/Progetto/xampp/htdocs/drupal...qui devo realizzare un'altra cartella a parte a sua volta contenente drupal?...


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Si, all'interno del file hosts crei due in indirizzi con interfaccia locale, in questo modo quando fai una richiesta web, anziche interrogaer i DNS esterni (che giustamente non sanno a quele indirizzo ti riferisci) sa ceh l'IP del sito è 127.0.0.1 (l'interfaccai di loopback) e quindi resta sul tuo PC e non manda richieste in giro per la rete inutilmente (e infruttosamente).
A questo punto devi impostare Apache per avere i due VirtualHost, che avreanno due indirizzi differenti ma puntano alla stessa cartella (se vuoi fare quello che ho capito io, ovvero usare il multisite di Drupl). Se invece vuoi puoi farli puntre a due folder differenti, ma a qusto punto hai due installazni di drupl completamente scollgate, e non puoi sfruttare le carattristche del multisite.

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Per la configurazione dei file penso di esserci, non mi pare nulla di difficile...
Però...se tengo tutto nella stessa cartella di apache, posso creare un sito completamente diverso dal primo?...
In sostanza vorrei avere sull'indirizzo ip 127.0.0.1 2 siti distinti realizzati entrambe con drupal...
Se lascio tutto nella stessa cartella cosa dovrei fare oltre alla configurazione?...creare un nuovo database?...


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Ha, k, se devono essere completamente separati falli puntare a 2 dir distinte con DB distinti (li crei accedendo con https://localhost/phpmyadmin/ ) e li configuri come due entità distinte, credevo volessi creare un'installazione multisite di Drupal Sticking out tongue

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Ma ciascuna delle due directory, ad ex. Sito1 e Sito2, deve contenere drupal, vero?...però posso metterle tutte e 2 all'interno dello stesso xampp, giusto?...


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Esatto, devi avere due indstallazioni di Drupal completamente separate. Se vuoi avere una sola installazione di Drupal puoi fare una installazione multisite, in questo modo usi due DB diversi, ma sempre e solo una sola installazione (quindi nessun duplicato di modulo, tema, ...). dipende un pò dalle tue esigenze e da cosa vuoi fare, se ti servono consigli dicci cosa hai in mente Eye-wink

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Ce l'ho fatta...
Però mi hai messo la cosidetta pulce nell'orecchio: come si fa un'installazione multisite con drupal?...


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Installi una sola directory con Drupal, crei N database (uno per ogni sito "virtuale" che vuoi avere).
Vai nella directory sites e crei un file di config per ogni sito che vuoi avere, dandogli il nome corretto in funzione dell'url che vuoi usare. Ovviamente devi avere i DNS (o hosts se fai prove in locale)/VirtualHosts con nomi differenti che puntano sempre alla stessa cartella in modo che sia Drupal a gestirne i diversi sottodomini... a quel punto se accedi con l'url http://sito1.locale/ vedi il sito1 con le impostazioni salvate nel database 1 se accedi con http://sito2.locale/ accedi al secondo e così via.
Mi sa che non mi sono spiegato un gran che bene, magari ci scriverò una guida, cmq è più difficile spiegarlo che farlo.

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Ci sto provando, ma...
Ho creato un'installazione di drupal e 2 database distinti...
Ho creato 2 virtual host configurando httpd-vhosts.conf così:

DocumentRoot C:\..\xampp\htdocs

DocumentRoot C:\..\xampp\htdocs

Può andare?
Quale file devo creare in sites?...
Perchè se no nn capisco come faccia Drupal a capire a quale db si riferisce sito1 e a quale sito2...
Aiuto!


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

mmm.. i path devono essere completi, spero che al posto dei puntini ci sia qualcos'altro e che punti ad una sottodrectory di htdocs Eye-wink
Comunque una volta creato i due VirtualHost, che devono essere configurati nel seguente modo:

<VirtualHost *:80>
    DocumentRoot "C:/Programmi/Xampp/xampp/htdocs/sito_prova/"
    ServerName sito1.prova
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/Programmi/Xampp/xampp/htdocs/sito_prova/"
    ServerName sito2.prova
</VirtualHost>

Riavvia Apache e dopo aver correttamente configurato il file hosts del proprio PC in modo che la risoluzione dei domini sito1.prova e sito2.prova punti alla macchina server, vai nella cartella /sites e inserisci due file di testo, chiamandoli ripettivamente prova.sito1 e prova.sito2. In ogniuno di questi file andrai ad inserire tutti i parametri per i due siti (quindi DB differenti, eventuali altre impostazioni differenti, ...) e gli dai i permessi di sola lettura.
A questo punto hai due siti "differenti" (sito1.prova e sito2.prova) ma con un unica installazione.

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Si, i puntini erano per omettere tutto il path...
Quello allora è ok, l'unica cosa che sbagliavo era che invece di due file creavo due cartelle con all'interno 2 file setting...
Adesso provo a fare come dici...intanto grazie...


Posts: 48
Iscritto il: 22 Apr 07

Problema...
Se io ho già creato uno dei due siti, non dovrei comunque avere problemi giusto?...
Perchè mi sembra di aver fatto tutto giusto. Supponendo che i due siti siano www.sito1 e www.sito2, ho settato le stringhe dei file di configurazione così:
File www.sito1

$db_url = 'mysql://<em>username</em>:<em>psw</em>@localhost/drupal';  //dove drupal è il nome del db
$db_prefix = 'sito1_';

File www.sito2

$db_url = 'mysql://<em>username</em>:<em>psw</em>@localhost/drupal2';  //dove drupal2 è il nome del secondo db
$db_prefix = 'sito2_';

Qualcosa di errato???
Perchè nell'aprire il sito mi restituisce questo?:

Warning: Table '.\drupal\sessions' is marked as crashed and should be repaired query: SELECT u.*, s.* FROM users u INNER JOIN sessions s ON u.uid = s.uid WHERE s.sid = 'efcf78f44ec310383cb74e99e4da3489' in C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc on line 172
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc:172) in C:\StageSito01\xampp\htdocs\drupal\includes\bootstrap.inc on line 811

Warning: Got error 134 from storage engine query: SELECT data, created, headers, expire FROM cache WHERE cid = 'variables' in C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc on line 172

Warning: Cannot modify header information - headers already sent by (output started at C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc:172) in C:\StageSito01\xampp\htdocs\drupal\includes\bootstrap.inc on line 488

Warning: Cannot modify header information - headers already sent by (output started at C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc:172) in C:\StageSito01\xampp\htdocs\drupal\includes\bootstrap.inc on line 489

Warning: Cannot modify header information - headers already sent by (output started at C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc:172) in C:\StageSito01\xampp\htdocs\drupal\includes\bootstrap.inc on line 490

Warning: Cannot modify header information - headers already sent by (output started at C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc:172) in C:\StageSito01\xampp\htdocs\drupal\includes\bootstrap.inc on line 491

Il tutto in intestazione al sito, mentre sotto in rosa:

warning: Cannot modify header information - headers already sent by (output started at C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc:172) in C:\StageSito01\xampp\htdocs\drupal\includes\common.inc on line 141.

user warning: Table '.\drupal\sessions' is marked as crashed and should be repaired query: SELECT COUNT(sid) AS count FROM sessions WHERE timestamp >= 1182406244 AND uid = 0 in C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc on line 172.

user warning: Table '.\drupal\sessions' is marked as crashed and should be repaired query: SELECT u.uid, u.name FROM users u INNER JOIN sessions s ON u.uid = s.uid WHERE s.timestamp >= 1182406244 AND s.uid > 0 ORDER BY s.timestamp DESC in C:\StageSito01\xampp\htdocs\drupal\includes\database.mysql.inc on line 172.

Idee?


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Hemm.. controlla bene i nomi dei file (sito1.www e sito2.www), mi sa che il problema sta li Eye-wink
Oppure hai le tabelle corrotte, riparale e vedi se poi va.

PS: ti ho editato il post in modo che sia più comprensibile, visto che ci sono usateli sti pulsanti per i tag code Laughing out loud

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Si, ancora una volta avevi ragione...o meglio, presumo sia così...
Adesso ho rinominato i nomi dei file e non mi vengono più presentati quegli errori...
Però ho un altro problema: il sito1 è raggiungibile e viene visualizzato, mentre non so come creare il secondo. Ho creato un secondo db, ma se digito l'indirizzo del secondo sito vengo rispedito ancora al primo...eppure nel file di configurazione il mio secondo sito punta ad un db diverso...oppure sto ignorando qualcosa di importante?

PS Scusa se non ho utilizzato i pulsanti per i tag code...


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Zorry, ma mi sa che hai qualche cosa di impostato "male" nel tuo sistema, sinceramente in locale l'avevo provato un pò di tempo fa e poi non ci ho più fatto testing e ho sempre lavorato in remoto con gestione dei DNS esterno, non è che è un problema del file hosts? Prova a gaurdare nei log e vedi cosa ti dicono..

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 48
Iscritto il: 22 Apr 07

Tutto risolto:

  1. nella cartella /sites di drupal ho creato due cartelle
    • sito1.prova
    • sito2.prova
  2. per ognuna di queste cartelle ho creato un file settings.php, ognuno dei quali punta a diversi db e precisamente
    • $db_url = 'mysql://<em>username</em>:<em>psw</em>@localhost/db1';  //dove db1 è il nome del primo db
      $db_prefix = ''
    • $db_url = 'mysql://<em>username</em>:<em>psw</em>@localhost/db2';  //dove db2 è il nome del secondo db
      $db_prefix = ''
  3. poi, cosa che non facevo prima, ho richiamato

    così effettivamente sono riuscito ad accedere ai 2 siti separatamente...

Tutto ovviamente dopo aver inserito nel file hosts di Windows i due nomi sito1.prova e sito2.prova, e dopo aver creato i 2 virtual hosts nel file vhosts.conf di apache...

Non so se intendevi questi passaggi e ho capito male io, comunque ho risolto.
Grazie mille, visto anche che non sarà l'ultima cosa che ti chiederò!! Smiling


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Ottimo, è più o meno quello che ti avevo detto io, ma evidentemente mi ricordavo male, visto che non vanno creati i file con nome sito1.prova e sito2.prova ma delle cartelle Sticking out tongue

PS: ho rieditato il post per renderlo un pò più leggibile Laughing out loud

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 21
Iscritto il: 06 Mar 07

Ciao, anche io vorrei far girare due siti usando lo stesso core, ma sto lavorando su un hosting condiviso e non ho accesso alla shell per configurare apache.
Come posso risolvere il problema?
Ho creato una directory "nomedominio.com" e dentro c'è il file di configurazione, ma non ho capito dove devo puntare il redirect del secondo dominio e dove vanno creati i riferimenti per fargli accedere al secondo sito.
Grazie

Bendo


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Devi avere due sottodomini e configurare il tuo hosting (solitamente danno un pannello di controllo) per farli puntare alla stessa directory, poi segui le indicazioni date precedentemente...

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 21
Iscritto il: 06 Mar 07

Ho due domini di secondo livello, il primo legato all'hosting e funziona correttamente con i settaggi in default. Poi ne ho acquistato un secondo, ma se lo facio puntare alla home mi appare solo il primo. Non posso configurare direttamente le direttive apache ne accedere alla shell perchè la macchina è condivisa.
Posso inserire le direttive apache nel file .httaccess


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

Scusa ma non capisco cosa hai fatto.. se hai un semplice redirect mi sa che non puoi usare il multisite, se invece hai i due DNS che puntano allo stesso host non dovresti avere problemi..

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 21
Iscritto il: 06 Mar 07

ho usato un redirect.
Se uso un pointer allo stesso IP mi appare la pagina di apache che mi dice:

Red Hat Enterprise Linux Test Page

This page is used to test the proper operation of the Apache HTTP server after it has been installed. If you can read this page, it means that the Apache HTTP server installed at this site is working properly.
If you are a member of the general public:

The fact that you are seeing this page indicates that the website you just visited is either experiencing problems, or is undergoing routine maintenance.

If you would like to let the administrators of this website know that you've seen this page instead of the page you expected, you should send them e-mail. In general, mail sent to the name "webmaster" and directed to the website's domain should reach the appropriate person.

For example, if you experienced problems while visiting www.example.com, you should send e-mail to "webmaster@example.com".

For information on Red Hat Enterprise Linux, please visit the Red Hat, Inc. website. The documentation for Red Hat Enterprise Linux is available on the Red Hat, Inc. website.
If you are the website administrator:

You may now add content to the directory /var/www/html/. Note that until you do so, people visiting your website will see this page, and not your content. To prevent this page from ever being used, follow the instructions in the file /etc/httpd/conf.d/welcome.conf.

You are free to use the images below on an Apache and Red Hat powered HTTP servers. Thanks for using Apache and Red Hat Enterprise Linux!"


Posts: 2026
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

mm... mi sa che il tuo hosting non ti permette di fare quello che vuoi tu, ovvero di usare due domini sullo stesso VirtulHost... prova a chiedere direttamente a loro.

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 21
Iscritto il: 06 Mar 07

Problema risolto.
Oltre a impostare il puntatore dovevo impostare il server apache per rispondere alla chiamata del nuovo dominio.
Funziona tutto perfettamente. Errore mio di configurazione del server.
Grazie dell'aiuto e della pazienza.


Condividi contenuti