Domini virtuali Apache

catellostefano

Utente Attivo
19 Dic 2008
525
2
0
www.stepo.biz
Salve a tutti,

ho seguito la guida di apache sul sito di mrwebmaster (non si finisce mai di imparare!!!!).

Comunque! ho visto la parte in cui si parla dei Domini virtuali e mi ha incuriosito la cosa!!!! allora ho iniziato a testare!!!!

vi spiego cosa ho fatto sono andato in httpd e ho cercato virtualhost ed è venuto fuori questo:
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

quindi sono andato in extra/httpd-vhosts.conf e c' era l'host che aveva come cartella htdcs io l'ho modificata così:

<VirtualHost *:80>
ServerAdmin stefano@stepo.biz
DocumentRoot "C:/server/sito"
ServerName ismaele
ErrorLog "logs/dummy-host2.com-error.log"
CustomLog "logs/dummy-host2.com-access.log" common
</VirtualHost>

ma mi visualizza sempre l'altra cartella!!!

mi è sorta una domanda forse questa funzione è disattivata è quindi ho tolto i cancelletti in modo che venisse in questo modo:
Virtual hosts
Include conf/extra/httpd-vhosts.conf


Ma sempre lo stesso!!!


----

dimenticavo ad ogni passaggio riavviavo il server apache
 
Ultima modifica:
Mi sembra anche strano che Apache non si arrabbi!!!!!

Va bene togliere il cancelletto a "Include conf/extra/httpd-vhosts.conf" altrimenti non viene considerata la configurazione presente nel file httpd-vhost.conf, ma non il cancelletto davanti a "Virtual hosts"!!!

In un VirtualHost una configurazione molto importante riguarda la direttiva ServerName.

Nella tua configurazione è impostata a "ismaele".

Il che vuol dire che verrà utilizzato quel VirtualHost solo se nel browser scrivi come indirizzo "http://ismaele/". Eventualmente è possibile aggiungere ulteriori nomi al VirtualHost con la direttiva ServerAlias
 
allora 1.
ho tolto il cancelletto da: Include conf/extra/httpd-vhosts.conf
ecco il risultato:
Codice:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

poi 2 ho modificato httpd-vhosts.conf credo in modo corretto ecco il risultato


Codice:
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost 127.0.0.1:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost 127.0.0.1:80>
    ServerAdmin webmaster@server3.ismaele.eu
    DocumentRoot /www/docs/dummy-host.server3.ismaele.eu
    ServerName dummy-host.server3.ismaele.eu
    ServerAlias www.dummy-host.server3.ismaele.eu
    ErrorLog logs/dummy-host.server3.ismaele.eu-error_log
    CustomLog logs/dummy-host.server3.ismaele.eu-access_log common
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    ServerAdmin info@ismaele.eu
    DocumentRoot C:/Server/www/sito
    ServerName localhost
    ErrorLog logs/dummy-host2.server3.ismaele.eu-error_log
    CustomLog logs/dummy-host2.server3.ismaele.eu-access_log common
</VirtualHost>

<VirtualHost 127.0.0.1:80>
ServerAdmin info@ismaele.eu
DocumentRoot C:/Server/www/server
ServerName vhost.server.sc8.eu
ErrorLog /var/log/virtuale/error.log
</VirtualHost>

<VirtualHost 127.0.0.1:80>
ServerAdmin info@ismaele.eu
DocumentRoot C:/Server/www/server
ServerName vh.server.sc8.eu
ErrorLog /var/log/virtuale/error.log
</VirtualHost>





ORA 2 domande
1 posso togliere tutte le righe con il cancelletto davanti in httpd-vhosts.conf????
2 come imposto il dns di server.sc8.eu cioè devo creare il record vh se si di che tipo e indirizato a dove???
grz:D:D
 
Ultima modifica:
1) la configurazione è formalmente corretta anche se a livello pratico quasi inutilizzabile.

La direttiva NameVirtualHost serve per identificare per quali connessioni in entrata al server applicare il VirtualHost. La discriminanate su cui si basa è l'indirizzo IP che riceve la connessione. Impostandola su "127.0.0.1" come nel tuo caso (indirizzo di loopback) funzionerà solo ed esclusivamente con connessioni locali (da server su se stesso) e usando nella barra degli indirizzi del browser nomi che vengano risolti in "127.0.0.1".

Se vuoi una configurazione funzionante devi configurare l'IP pubblico del server nella direttiva NameVirtualHost.
Ad esempio prendiamo "server.sc8.eu" risolto in 204.124.182.69 (l'IP delle Wildcards). E mettiamo di voler configurare nello stesso VirtualHost anche "www.server.sc8.eu". Nel file di configurazione del VirtualHost dovrà esserci qualcosa di simile:

NameVirtualHost 204.124.182.69:80

<VirtualHost 204.124.182.69:80>
ServerAdmin webmaster@server.ismaele.eu
DocumentRoot /www/docs/server_sc8_eu
ServerName server.sc8.eu
ServerAlias www.server.sc8.eu
ErrorLog logs/server_sc8_eu-error_log
CustomLog logs/server_sc8_eu-access_log common
</VirtualHost>


Se vogliamo poi aggiungere un altro VirtualHost, ad esempio per server2.sc8.eu (sempre posto che sia risolto in 204.124.182.69),
anche lui col suo alias "www.server2.sc8.eu",
basterà aggiungere nella configurazione:


<VirtualHost 204.124.182.69:80>
ServerAdmin webmaster@server2.ismaele.eu
DocumentRoot /www/docs/server2_sc8_eu
ServerName server2.sc8.eu
ServerAlias www.server2.sc8.eu
ErrorLog logs/server2_sc8_eu-error_log
CustomLog logs/server2_sc8_eu-access_log common
</VirtualHost>

Risposta domanda 1:
Si possono cancellare tutte le righe che hanno il cancelletto davanti in quanto sono commenti e quindi non considerati, anche se non te lo consiglio perchè sono un aiuto per orientarsi nelle varie sezioni di configurazione e spesso portano anche esempi.

Risposta domanda 2:
Nel DNS non devi configurare niente, dato che utilizzi le wildcards. Anzi credo che per "server.sc8.eu" tu abbia ancora una delega di zona che è da rimuovere, altrimenti le wildcards non funzionano!!!
 
Va benissimo, ma cambia di conseguenza anche la direttiva NameVirtualHost in *:80

In questo modo considera tutti gli indirizzi IP.
 
ora mi viene fuori un altro problemino!!!:dipser::dipser:+
allora ora il dominio è ser.sc8.eu (per l'altro dovevo aspettare che il server si propagava mi scocciavo)

mi dice (403)
Forbidden
You don't have permission to access / on this server.

sia quando vado in localhost che in ser.sc8.eu:D:D

che sara???

ti riporto lo stesso il file httpd-vhosts

Codice:
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.
    DocumentRoot /www/docs/dummy-host.
    ServerName dummy-host.
    ServerAlias www.dummy-host.
    ErrorLog logs/dummy-host.-error_log
    CustomLog logs/dummy-host.-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.
    DocumentRoot /www/docs/dummy-host2.
    ServerName localhost.
    ErrorLog logs/dummy-host2.-error_log
    CustomLog logs/dummy-host2.-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin info@ismaele.eu.
    DocumentRoot C:/Server/www/server.
    ServerName www.ser.sc8.eu.
    ErrorLog logs/dummy-host2.-error_log
    CustomLog logs/dummy-host2.-access_log common
</VirtualHost>
 
All'interno dei VirtualHost devi impostare i permessi di accesso alle directory che vuoi usare, ad esempio:


<VirtualHost *:80>
ServerAdmin info@ismaele.eu.
DocumentRoot "C:/Server/www/server"
ServerName www.ser.sc8.eu.
ErrorLog logs/dummy-host2.-error_log
CustomLog logs/dummy-host2.-access_log common
<Directory "C:/Server/www/server">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Probabilmente in httpd.conf hai questa configurazione:

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

Che di default nega l'accesso a chiunque. Quindi l'accesso ad ogni cartella deve essere esplicitamente concesso.
Potresti aver bisogno di altre configurazioni, perchè non butti un occhio qui?
 
Codice:
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Satisfy all
</Directory>/CODE]

è così.
 come impostare in modo che invece di negare sempre consenta sempre??
 
ok ho fatto così

Codice:
<Directory />
AcceptFilter http data 
AcceptFilter https data
</Directory>

ma ora il problema è che dice che non trova la pagina!!!! sia con il link che con localhost
Pagina non trovata - errore di connessione


stò coso non vuole proprio andare!!:mad::mad::mad::mad:
ora ho ripristinato la configurazione iniziale
 
Ultima modifica:
Invece di fare cose strane bastava applicare la configurazione che ti avevo postato per il VirtualHost:

<VirtualHost *:80>
ServerAdmin info@ismaele.eu.
DocumentRoot "C:/Server/www/server"
ServerName www.ser.sc8.eu.
ErrorLog logs/dummy-host2.-error_log
CustomLog logs/dummy-host2.-access_log common
<Directory "C:/Server/www/server">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Se poi proprio vuoi aprire tutto, nel file httpd.conf al posto di:

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>

scrivi:

<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
 
Apache è Apache su Windows o su Linux. I permessi sono nella configurazione di Apache quindi valgono ovunque. Non sono i permessi su filesystem.

Puoi postare cosa hai modificato e in quale file? Ed il messaggio di errore completo?

Altra cosa, ovviamente riavvii Apache ad ogni cambiamento vero?

Ultimo, per ora: da linea di comando vai nella cartella di installazione di Apache. Nella directory "bin" lancia il comando: httpd.exe -S e riporta quello che ritorna.
 
Puoi postare cosa hai modificato e in quale file? Ed il messaggio di errore completo?

ho modificato httpd e httpd-vhosts basta il messaggio è il classico 404 vai su http://www.ser.sc8.eu/ lo vedrai

Altra cosa, ovviamente riavvii Apache ad ogni cambiamento vero?

Certo

Ultimo, per ora: da linea di comando vai nella cartella di installazione di Apache. Nella directory "bin" lancia il comando: httpd.exe -S e riporta quello che ritorna.

Ti ho allegato l'immagine HIHI
 

Allegati

  • fdsfs.jpg
    fdsfs.jpg
    90,6 KB · Visite: 312
Andando su http://www.ser.sc8.eu non vedo nessun messaggio di errore, ma la homepage predefinita di cPanel. Inoltre il server Apache che mi risponde gira su un server Linux mentre tu stai lavorando su Windows...

Credo ci siano problemi ben più profondi rispetto alla configurazione di Apache...
 
Ok, adesso per lo meno vedo l'errore...

Nella root del sito, che file ci sono?

Dallo screenshot si vede che i due VirtualHost che hanno come ServerName dummy-host. e localhost. non funzionano in quanto i path del DocumentRoot non sono validi su Windows.

Se poi vuoi allegare i due files di configurazione li controllo.
 
dove li trovo questi 2 files?? inoltre hai msn??? a quanto pare è una lunga discussione!!!
Poi non ti preoccupare, se ci vediamo in chat posterò il rapporto di ciò che è stato fatto e la soluzione che ne pensi??? a limite ti connetti al desktop remoto!!!:fonzie:
 

Discussioni simili