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?...
Installazione di più siti "multisite Drupal"
Lun, 28/05/2007 - 11:45
#1
Installazione di più siti "multisite Drupal"
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
Marco
--
My blog
Working at @agavee
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?...
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
Marco
--
My blog
Working at @agavee
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?...
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 :P
Ciao
Marco
--
My blog
Working at @agavee
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?...
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 ;)
Ciao
Marco
--
My blog
Working at @agavee
Ce l'ho fatta...
Però mi hai messo la cosidetta pulce nell'orecchio: come si fa un'installazione multisite con drupal?...
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
Marco
--
My blog
Working at @agavee
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!
mmm.. i path devono essere completi, spero che al posto dei puntini ci sia qualcos'altro e che punti ad una sottodrectory di htdocs ;)
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
Marco
--
My blog
Working at @agavee
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...
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?
Hemm.. controlla bene i nomi dei file (sito1.www e sito2.www), mi sa che il problema sta li ;)
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 :D
Ciao
Marco
--
My blog
Working at @agavee
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...
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
Marco
--
My blog
Working at @agavee
Tutto risolto:
$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 = ''
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ò!! :-)
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 :P
PS: ho rieditato il post per renderlo un pò più leggibile :D
Ciao
Marco
--
My blog
Working at @agavee
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
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
Marco
--
My blog
Working at @agavee
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
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
Marco
--
My blog
Working at @agavee
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 "[email protected]".
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!"
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
Marco
--
My blog
Working at @agavee
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.