Site off-line spostamento root

15 contenuti / 0 new
Ultimo contenuto
Site off-line spostamento root

Ho creato un sito drupal con xampp e la root iniziale era xampp\htdocs.
Ora volendo gestire più siti sullo stesso server ho cercato di spostare la root del mio primo sito trasferendolo da xampp\htdocs a xampp\htdocs\sito1 e sono andato quindi a modificare il file xampp\apache\conf\httpd-vhosts.conf andando ad aggiungere le istruzioni per il primo virtualhost
..VirtualHost *:80>
##ServerAdmin [email protected]
DocumentRoot "C:/inst/xampp/htdocs/sito1/"
ServerName sito1
##ServerAlias sito1
##ErrorLog "logs/dummy-host2.localhost-error.log"
##CustomLog "logs/dummy-host2.localhost-access.log" combined
../VirtualHost>

..Directory "C:/inst/xampp/htdocs/sito1">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
../Directory>

ma il risultato è che mi da un messaggio a noi "drupaliani" ben noto:
Site off-line, quindi non mi fa entrare.
Penso che il problema è che cambiando percorso del sito ci sia incongruenza con il db ma non so dove devo andare ad agire. Forse modificare il settings.php o che cosa ???
Help ! :)

Marco, usa il bottone CODE nel editor per testo che contiene dei < e > - altrimenti non capiamo...

marco.latina wrote:
Ho creato un sito drupal con xampp e la root iniziale era xampp\htdocs.
Ora volendo gestire più siti sullo stesso server ho cercato di spostare la root del mio primo sito trasferendolo da xampp\htdocs a xampp\htdocs\sito1 e sono andato quindi a modificare il file xampp\apache\conf\httpd-vhosts.conf andando ad aggiungere le istruzioni per il primo virtualhost:
<VirtualHost *:80>
    DocumentRoot "C:/inst/xampp/htdocs/sito1/"
    ServerName sito1
</VirtualHost>
<Directory "C:/inst/xampp/htdocs/sito1">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

ma il risultato è che mi da un messaggio a noi "drupaliani" ben noto:
Site off-line, quindi non mi fa entrare.
Penso che il problema è che cambiando percorso del sito ci sia incongruenza con il db ma non so dove devo andare ad agire. Forse modificare il settings.php o che cosa ???
Help ! :)


(ho tolto i commenti nel quote)

Il motivo perchè non mi piacono questi sistemi 'pacchettati' tipo Xampp è che rendono le cose difficile quando vuoi andare oltre...
Comunque, dato che sto girando una ventina di siti in locale, vedremmo se possiamo mettere anche il tuo sistema a posto...

Vediamo se riesco a capire come era la configurazione precedente che funzionava:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/inst/xampp/htdocs"
</VirtualHost>
<Directory "C:/inst/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Giusto? Ed accedevi con http://localhost, giusto?
Ok, presumo di si.

Come fa Apache a capire che http://localhost corresponde a questo definizione di VirtualHost?
La *:80 dice che Apache deve ascoltare qualsiasi IP sulla porta 80. Allora perchè Apache esegue questo VirtualHost e non un altro? perchè specificiamo il nome del server: ServerName localhost. E questo localhost come viene tradotto in un IP? Lo fa Windows leggendo un file chiamato hosts (di solito in C:\WINDOWS\system32\drivers\etc ma dipende dalla versione di Windows) che contiene questa riga:

127.0.0.1    localhost

(aprilo con Blocco note, perchè è un file di testo)

Quindi dal browser http://localhost diventa http://localhost:80 (fatto dal browser, sa che http usa la porta 80) che diventa http://127.0.0.1:80 (fatto da Windows/hosts) che Apache riceve e trova un correspondente VirtualHost per 127.0.0.1:80 con nome localhost.

Allora adesso vogliamo aggiungere un altro server, che chiameremo sito1, cosa dobbiamo fare?
1. Creare un altro VirtualHost
2. Aggiungere una riga al file hosts, e basta.

Non capisco perchè il direttivo <Directory> sta al di fuori del <VirtualHost>, quindi semplifico:

#... precedenti VirtualHosts (puoi tenerli)
<VirtualHost *:80>
    DocumentRoot "C:/inst/xampp/htdocs/sito1"
    ServerName sito1
    <Directory "/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Poi in hosts aggiungiamo:
# ... precendente definizioni, puoi tenerli
127.0.0.1    sito1

In fine bisogna fare un restart di Apache. Credo che Xampp ti da un interfaccia GUI per questo, quindi Stop poi Start. Importante: controlla che non vengono visualizzati errori di configurazione durante lo start.
A questo punto il sito originale dovrebb'essere accessibile tramite http://localhost e quello nuovo tramite http://sito1

Se hai spostato il tuo Drupal da C:/inst/xampp/htdocs a C:/inst/xampp/htdocs/sito1, probabilemente http://localhost[/codefilter_code] ti darà una lista del indirizzo (tipo explorer per intenderci), mentre http://sito1 farà girare Drupal.

Niente di tutto questo può influire sul meccanismo di collegamento con la basedati (che si collega a localhost:3306 di solito) quindi non dovrebbe creare fastidi...

HTH

John

Più imparo, più dubito.

Con xammp io uso un settaggio di questo genere, prendendo spunto dalla tua directory:

File: xampp\apache\conf\extra\httpd-vhosts.conf

NameVirtualHost *:80
###localhost
<VirtualHost *:80>
DocumentRoot "C:/inst/xampp/htdocs/"
ServerName localhost
</VirtualHost>
<Directory "C:/inst/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
###sito1
<VirtualHost *:80>
DocumentRoot "C:/inst/xampp/htdocs/sito1/"
ServerName sito1
</VirtualHost>
<Directory "C:/inst/xampp/htdocs/sito1">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
###sito2
<VirtualHost *:80>
DocumentRoot "C:/inst/xampp/htdocs/sito2/"
ServerName sito2
</VirtualHost>
<Directory "C:/inst/xampp/htdocs/sito2">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

File: C:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1       localhost
127.0.0.1       sito1
127.0.0.1       sito2

Poi i siti saranno raggiungibili da http://sito1 http://sito2 ecc..

jhl.verona wrote:
Marco, usa il bottone CODE nel editor per testo che contiene dei < e > - altrimenti non capiamo...
marco.latina wrote:
Ho creato un sito drupal con xampp e la root iniziale era xampp\htdocs.
Ora volendo gestire più siti sullo stesso server ho cercato di spostare la root del mio primo sito trasferendolo da xampp\htdocs a xampp\htdocs\sito1 e sono andato quindi a modificare il file xampp\apache\conf\httpd-vhosts.conf andando ad aggiungere le istruzioni per il primo virtualhost:
<VirtualHost *:80>
    DocumentRoot "C:/inst/xampp/htdocs/sito1/"
    ServerName sito1
</VirtualHost>
<Directory "C:/inst/xampp/htdocs/sito1">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

ma il risultato è che mi da un messaggio a noi "drupaliani" ben noto:
Site off-line, quindi non mi fa entrare.
Penso che il problema è che cambiando percorso del sito ci sia incongruenza con il db ma non so dove devo andare ad agire. Forse modificare il settings.php o che cosa ???
Help ! :)


(ho tolto i commenti nel quote)

Il motivo perchè non mi piacono questi sistemi 'pacchettati' tipo Xampp è che rendono le cose difficile quando vuoi andare oltre...
Comunque, dato che sto girando una ventina di siti in locale, vedremmo se possiamo mettere anche il tuo sistema a posto...

Vediamo se riesco a capire come era la configurazione precedente che funzionava:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/inst/xampp/htdocs"
</VirtualHost>
<Directory "C:/inst/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Giusto? Ed accedevi con http://localhost, giusto?
Ok, presumo di si.

Come fa Apache a capire che http://localhost corresponde a questo definizione di VirtualHost?
La *:80 dice che Apache deve ascoltare qualsiasi IP sulla porta 80. Allora perchè Apache esegue questo VirtualHost e non un altro? perchè specificiamo il nome del server: ServerName localhost. E questo localhost come viene tradotto in un IP? Lo fa Windows leggendo un file chiamato hosts (di solito in C:\WINDOWS\system32\drivers\etc ma dipende dalla versione di Windows) che contiene questa riga:

127.0.0.1    localhost

(aprilo con Blocco note, perchè è un file di testo)

Quindi dal browser http://localhost diventa http://localhost:80 (fatto dal browser, sa che http usa la porta 80) che diventa http://127.0.0.1:80 (fatto da Windows/hosts) che Apache riceve e trova un correspondente VirtualHost per 127.0.0.1:80 con nome localhost.

Allora adesso vogliamo aggiungere un altro server, che chiameremo sito1, cosa dobbiamo fare?
1. Creare un altro VirtualHost
2. Aggiungere una riga al file hosts, e basta.

Non capisco perchè il direttivo <Directory> sta al di fuori del <VirtualHost>, quindi semplifico:

#... precedenti VirtualHosts (puoi tenerli)
<VirtualHost *:80>
    DocumentRoot "C:/inst/xampp/htdocs/sito1"
    ServerName sito1
    <Directory "/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Poi in hosts aggiungiamo:
# ... precendente definizioni, puoi tenerli
127.0.0.1    sito1

In fine bisogna fare un restart di Apache. Credo che Xampp ti da un interfaccia GUI per questo, quindi Stop poi Start. Importante: controlla che non vengono visualizzati errori di configurazione durante lo start.
A questo punto il sito originale dovrebb'essere accessibile tramite http://localhost e quello nuovo tramite http://sito1

Se hai spostato il tuo Drupal da C:/inst/xampp/htdocs a C:/inst/xampp/htdocs/sito1, probabilemente http://localhost[/codefilter_code] ti darà una lista del indirizzo (tipo explorer per intenderci), mentre http://sito1 farà girare Drupal.

Niente di tutto questo può influire sul meccanismo di collegamento con la basedati (che si collega a localhost:3306 di solito) quindi non dovrebbe creare fastidi...

HTH

John

Ciao Jhon,
premetto che già avevo configurato il file hosts di window e la configurazione esatta in Xampp è quella riportata da Krima, in quanto basterebbe configurare httpd-vhosts.conf con i relativi virtual host e il file host precedentemente citato in C:\WINDOWS\system32\drivers\etc...
Il tutto funziona se comincio dall'inizio e installo i miei siti (sito1, sito2..)
Il problema di "site offline" si presenta se ho già un sito che avevo precedentemente creato in htdocs di xampp e poi lo sposto in una sotto directory.
Non deve essere un grosso problema ma mi è difficile individurlo, cmq riprovo e ti faccio sapere..
(Devo dire che sulla scelta di Xampp ci ho riflettuto molto e inizialmente mi sono configurato un ambiente con Apache, Php ecc.. però dato che devo agire su Windows 2003 Server e non ho avuto grosse problematiche nè di configurazione nè di settaggio parametri, credo che non sia una scelta inopportuna..anzi )

Confermo Krima,
come dicevo a Jhon, la configurazione che hai riportato è esatta però mi funziona solo se inizio da "0" con la configurazione di sito1, sito2 ecc.. se trasporto un sito già fatto da htdocs di Xampp in una sotto directory "sito1" ho questo problema di "site offlines"...
Ma non mi sono ancora arreso !
:)

Quello che ha scritto Krima, va benissimo...

marco.latina wrote:
Ciao Jhon,

Ciao Mraco ;-)
marco.latina wrote:
premetto che già avevo configurato il file hosts di window e la configurazione esatta in Xampp è quella riportata da Krima, in quanto basterebbe configurare httpd-vhosts.conf con i relativi virtual host e il file host precedentemente citato in C:\WINDOWS\system32\drivers\etc...
Il tutto funziona se comincio dall'inizio e installo i miei siti (sito1, sito2..)
Il problema di "site offline" si presenta se ho già un sito che avevo precedentemente creato in htdocs di xampp e poi lo sposto in una sotto directory.
Non deve essere un grosso problema ma mi è difficile individurlo, cmq riprovo e ti faccio sapere..
(Devo dire che sulla scelta di Xampp ci ho riflettuto molto e inizialmente mi sono configurato un ambiente con Apache, Php ecc.. però dato che devo agire su Windows 2003 Server e non ho avuto grosse problematiche nè di configurazione nè di settaggio parametri, credo che non sia una scelta inopportuna..anzi )

Niente in contrario sulla scelta di Xampp - solo che io preferisco non usarlo.
Allora il messaggio 'Off-line' dice anche che è dovuto a motivi tecnici? "The site is currently not available due to technical problems."?

Più imparo, più dubito.

Prova a controllare i dati nel settings.php

Ho riprovato a spostare il sito, premesso che ho rifatto la configurazione del file xampp\apache\conf\httpd-vhosts.conf e del file hosts in "C:\WINDOWS\system32\drivers\etc" sempre nello stesso modo, come riportato anche sopra da Krima, ho copiato i file del progetto Drupal che si trovavavano in "C:\xampp\htdocs" in "C:\xampp\htdocs\sito1", il php.ini invece è sempre lo stesso e il database è sempre lo stesso.
Ora andando su "http://sito1" appare la scritta:

Index of /
[ICO] Name Last modified Size Description
[DIR] sito1/ 18-Jun-2010 10:20 -
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 Server at sito1 Port 80

..e cliccando sulla cartella "sito1/" mi reindirizza al sito "http://sito1/sito1/" dove c'è il sito ma sono scomparse le immagini ( eppure il percorso delle immagini dovrebbe rimanere invariato nel percorso relativo "..sites/default/files/images" )

Qualche spiegazione in merito ???
:)

Aggiungo che presumo che il database potrebbe a questo punto non essere allineato con i file di progetto ma non so dove eventualmente andare ad agire, per quanto riguarda il settings.php riporta le solite opzioni che non credano dovrebbero influire:

$update_free_access = FALSE;

$db_url = 'mysqli://utente:psw@localhost/database';
$db_prefix = '';

ini_set('arg_separator.output', '&');
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);
ini_set('session.cache_expire', 200000);
ini_set('session.cache_limiter', 'none');
ini_set('session.cookie_lifetime', 2000000);
ini_set('session.gc_maxlifetime', 200000);
ini_set('session.save_handler', 'user');
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
ini_set('url_rewriter.tags', '');

Credo che hai sbagliato qualcosa nel <VirtualHost> per sito1. Sta rispondendo come per localhost. Puoi confirmare usando http://localhost - anche quello dà la lista dei files?

Più imparo, più dubito.

Si anche su http://localhost/ mi da:

Index of /
[ICO] Name Last modified Size Description
[DIR] sito1/ 18-Jun-2010 10:20 -
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 Server at localhost Port 80

Allora fateci vedere cos'hai scritto per il VirtualHost di sito1...
Essattamente come da Krima?

###sito1
<VirtualHost *:80>
DocumentRoot "C:/inst/xampp/htdocs/sito1/"
ServerName sito1
</VirtualHost>
<Directory "C:/inst/xampp/htdocs/sito1">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Ed è l'unico definizione per sito1 nel file xampp\apache\conf\httpd-vhosts.conf?

Più imparo, più dubito.

Quote:
in virtual host ho:

###sito1

DocumentRoot "C:/xampp/htdocs/sito1/"
ServerName sito1

Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all

nel file host:
127.0.0.1 localhost
127.0.0.1 sito1

queste sono invece le opzioni che sono riportate nel file httpd.conf anche per rispondere ad una domanda (Jhon) fatta prima:

ServerRoot "C:/xampp/apache"
Listen 80
ServerAdmin postmaster@localhost
ServerName localhost:80
DocumentRoot "C:/xampp/htdocs"

Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all

Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all

DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
home.php home.pl home.cgi home.asp home.shtml home.html home.htm

Order allow,deny
Deny from all
Satisfy All

# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"

Mille scuse Jhon e mille scuse Krima, ho fatto tutto ok ma non ho fatto l'operazione basilare, almeno questa volta, di riavviare Apache !!!!!
:(
mi vergogno di me stesso :)
Ora tutto ok anche su http://sito1
Ancora Grazie
e spero in ogni caso che la discussione sia sempre stata utile per altri utenti

Devo dire invece che a casa avevo provato con Windows Seven e nonostante AVEVO RIAVVIATO APACHE avevo avuto quel problema di site offlines..ma è un'altra storia !
: )