PDA

View Full Version : <VirtualHost>Su Apache 1.3 per Win32</VirtualHost>


Tass O Mann
04-03-2002, 09:26
Ciao ragaz, ho trovato il pc che fa da server, ho installato w2k, apache, mysql, php perl, e vnc.
Se fosse collegato ad internet, sarebbe completamente gestibile da remoto! :D
Nota dolente, smanettare linux.. gliel'ho data su, spero che non mi dia problemi di sicurezza. (ho messo zonealarm)
Se manca qualcosa ditemelo! :p

Cmq il mio problema ora è configurare dei virtual host di apache 1.3.
Vorrei auto hostarmi alcuni siti, ho letto le faqu di apache, ma in inglese non ci ho capito un caizzero... sapete darmi qualche ragguaglio in merito?

ora httpd.conf

ha ovviamente ip 127.0.0.1 e come nome localhost

Jarsil
04-03-2002, 11:00
La direttiva NameVirtualHost basta che abbia un * come simbolo, in modo che lui prenda in automatico qualunque ip disponibile.

Dopodiché, la sintassi del virtualhost è semplice:

<VirtualHost *>
ServerName xxxxx.xxxx.xxxxx
DocumentRoot /path/della/root/dir/del/sito
eventuali alias

</VirtualHost>

La sintassi è la stessa per Win32 o Linux, nel file httpd.conf

Tass O Mann
04-03-2002, 13:57
andiamo nello specifico...


NameVirtualHost *

<VirtualHost *>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot c:/nusphere/apache/htdocs_2
ServerName due
ErrorLog logs/sito2-error_log
CustomLog logs/sito2-access_log common
</VirtualHost>


facendo così il virtual host prende il posto del server principale.. :look:

az io devo aggiungerne un altro, non sostituire..



[Mon Mar 04 14:53:08 2002] [error] Cannot resolve host name due.localhost --- ignoring!
[Mon Mar 04 14:53:10 2002] [error] Cannot resolve host name due.localhost --- ignoring!
Apache/1.3.14 (Win32) mod_perl/1.24_01 mod_ssl/2.7.1 OpenSSL/0.9.6 running...


aehmm che è successo? :eek:
adesso è così


NameVirtualHost due.localhost

<VirtualHost due.localhost>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot c:/nusphere/apache/htdocs_2
ServerName due.localhost
ErrorLog logs/sito2-error_log
CustomLog logs/sito2-access_log common
</VirtualHost>

Jarsil
04-03-2002, 14:25
Preso paro paro dal mio httpd.conf del server web:


#Virtual Hosting, da qui in poi definisco i vari hosts
NameVirtualHost *


#configura
<VirtualHost *>
ServerName nome.server.vero.e.proprio
DocumentRoot /home/httpd/www/nome.server.vero.e.proprio/html
ServerAdmin root@xxxxxxx
CustomLog /var/log/httpd/nome.server.vero.e.proprio combined
</VirtualHost>

<VirtualHost *>
ServerName new.xxxx.ddr.it
DocumentRoot /home/httpd/www/new.xxxx.ddr.it/html
ServerAdmin root@new.xxxx.ddr.it
CustomLog /var/log/httpd/new.xxxx.ddr.it-acc_log combined
</VirtualHost>

<VirtualHost *>
ServerName www.new.xxxx.ddr.it
DocumentRoot /home/httpd/www/www.new.xxxx.ddr.it/html
ServerAdmin ssfinetti@new.xxxx.ddr.it.it
CustomLog /var/log/httpd/www.new.xxxx.ddr.it-acc_log combined
</VirtualHost>


Quando usi la direttiva NameVirtualHost *, se non vuoi perdere il sito principale lo devi mettere tra i Virtual Hosts.
Inoltre, non devi mettere VirtualHost nomeserver, quella è la sintassi buona per i VirtualHost basati sull'IP, mentre tu devi usare la direttiva VirtualHost Name Based.

Tass O Mann
04-03-2002, 16:27
ah ok ora è più chiaro, ricapitolando

<VirtualHost IP> si usa quando si dispone di vari ip sullo stesso server ( :look: come si fa non lo so..)

<VirtualHost *>
servername=sito.it
bla bla

<VirtualHost *>
servername=sito2.it
bla bla

per avere 2 host sullo stesso ip

ora mi chiedo... i domain di 2 livello: pippo.sito2.it
sono altri virtualhost?


nel caso in cui ci sia un dominio vero e proprio da indirizzare...
si fanno aggiornare i dns, sull'indirizzo ip della macchina, giusto? :ghgh:

Jarsil
04-03-2002, 16:31
Originally posted by Tass O Mann
ah ok ora è più chiaro, ricapitolando

<VirtualHost IP> si usa quando si dispone di vari ip sullo stesso server ( :look: come si fa non lo so..)

<VirtualHost *>
servername=sito.it
bla bla

<VirtualHost *>
servername=sito2.it
bla bla

per avere 2 host sullo stesso ip

ora mi chiedo... i domain di 2 livello: pippo.sito2.it
sono altri virtualhost?


nel caso in cui ci sia un dominio vero e proprio da indirizzare...
si fanno aggiornare i dns, sull'indirizzo ip della macchina, giusto? :ghgh:

Si, esatto, devi avere un VirtualHost per ogni dominio di 3° livello se è un sito web (il dominio di 2° livello è sito2, nel tuo caso: 1° livello: .it, 2° livello: sitoX, 3° livello: quello che vuoi. Ma occhio che la sintassi è sbagliata: non è Servername sito2.it ma devi mettere il nome completo, compreso il www o comunque il dominio di 3° livello DEVE essere indicato nella direttiva ServerName.

Per i DNS, deve esistere un CNAME appropriato per dominio.

Metti che tu abbia:

www.sito1.it

che nei dns è registrato come:

www A 123.146.246.87

devi avere:

pippo CNAME www
pluto CNAME www

in modo che il dns punti sempre allo stesso IP per ogni sottodominio (sono come degli alias).

Se hai bisogno di aiuto per i dns, fammi sapere.

Ah, comunque avere più IP sulla stessa macchina è una stronzata pazzesca persino con Win98...
Sui sistemi Winzoz basta installare un ulteriore protocollo TCP/IP (win98/ME), mentre su Win2k puoi specificare più IP per scheda. Su Linux esistono gli alias per le schede di rete.

per essere maggiormente preciso ed esauriente...



NameVirtualHost *

<VirtualHost *>
ServerName www.sito1.it
blabla
</VirtualHost>

<VirtualHost *>
Servername tasso.sito1.it
blabla
</VirtualHost>

<VirtualHost *>
Servername uo.sito2.it
blabla
</VirtualHost>



ecc.

Tass O Mann
04-03-2002, 17:18
OK funzia! :D:D:D:D:D:D:D:D:D:D
anche se gli host li sto definendo in c:/Winnt/drivers/etc/hosts (hosts è un file...)

ora però mi manca la dir cgi per gli host virtuali..
immagino che ogni Vhost voglia un alias cgi


ScriptAlias /cgi-bin/ "C:/nusphere/apache/cgi-bin/"

<Directory "C:/nusphere/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


questo è quello principale, basta che duplico e setto la dir giusta per gli altri vhosts....

php dovrebbe già andare.

Jarsil
04-03-2002, 17:23
Originally posted by Tass O Mann
OK funzia! :D:D:D:D:D:D:D:D:D:D
anche se gli host li sto definendo in c:/Winnt/drivers/etc/hosts (hosts è un file...)

ora però mi manca la dir cgi per gli host virtuali..
immagino che ogni Vhost voglia un alias cgi


ScriptAlias /cgi-bin/ "C:/nusphere/apache/cgi-bin/"

<Directory "C:/nusphere/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


questo è quello principale, basta che duplico e setto la dir giusta per gli altri vhosts....

php dovrebbe già andare.

Si, devi solo configurare gli ScriptAlias per il CGI.
Direi che per la lezione di oggi mi devi circa 200€, pagamento in contanti :angel:

Tass O Mann
04-03-2002, 18:24
FAHAUHA sisi in natura.... ti ci metto del mio....... :cool:

aehm.. dove? :look:

ti son caduti 4€..... :rolleyes:

Tass O Mann
05-03-2002, 10:03
umh....
AliasScript /cgi-bin/ "C:/path/alla/dir/vera" genera una directory chiamata "cgi-bin/"dopo al nome del server, nella quale i files vengono trattati come applicazioni, e posson essere eseguiti.

ok ho definito diversi alias script... il problema è che tutti son disponibili per tutti i virtual host che ho generato grazie agli aiuti di jarsillo... :p

attualmente ho una cgi-bin che è condivisa da tutti i Vhost... si può fare in modo che invece ce ne siano diverse personalizzate?

denghiu! :kiss:

Jarsil
05-03-2002, 11:32
Originally posted by Tass O Mann
umh....
AliasScript /cgi-bin/ "C:/path/alla/dir/vera" genera una directory chiamata "cgi-bin/"dopo al nome del server, nella quale i files vengono trattati come applicazioni, e posson essere eseguiti.

ok ho definito diversi alias script... il problema è che tutti son disponibili per tutti i virtual host che ho generato grazie agli aiuti di jarsillo... :p

attualmente ho una cgi-bin che è condivisa da tutti i Vhost... si può fare in modo che invece ce ne siano diverse personalizzate?

denghiu! :kiss:

Si, ti basta non puntare lo ScriptAlias alla Cgi-bin principale, ma alla sottocartella nel sito. Per fare questo usi la direttiva DIRECTORY, con l'opzione ExecCGI:


ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"

<Directory "/home/httpd/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

<Directory "/root/altro/sito/web/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

queste direttive non vanno inserite nei VHost, ma nella configurazione generale.

Per avere poi le dir cgi-bin per ogni singolo sito, devi mettere, nel Virtual Host:


ScriptAlias /cgi-bin/ "/home/httpd/path.del.sito.web/cgi-bin/"


Ma secondo me la cosa migliore, per avere cgi-bin DIVERSE, è usare le direttive Directory come ti ho detto sopra, che non fanno altro che assegnare la possibilità di eseguire i cgi se sono dentro la directory indicata.

Tass O Mann
05-03-2002, 12:02
Si ma se faccio come sopra, una volta che carico un Vhost, se non gli ho detto ScriptAlias bla bla, come fa a capire a quale dir si deve riferire per recuperare il /cgi-bin/ :eek:

io avevo settato 2 scriptalias chiamati /cgi-bin/ su due dir diverse, e settato 2 <Directory>
il problema è che stavan tutti e 2 nella conf generale... confo i virual hosz poi te so di! ':-d

------------------------------------------------
Segnati una birra in più nell'equipaggiamento... :ghgh: offro io....