View Full Version : Gestire virtualhost in locale
Ciao a tutti, nella root di apache ho tante cartelle che rappresentano i miei siti ai quali accedo con http://localhost/nomecartella
Però vorrei far sì che per accedere a quella cartella basti digitare http://nomecartella.local
Per farlo ho seguito una guida che trattava dei virtualhost e consisteva nel modificare sia il file httpd.conf che il file host (presente nella cartella di windows).
Però io vorrei avere una cosa del tutto automatizzata ovvero che quando creo una nuova cartella sia subito accessibile senza andare a modificare questi due file ogni volta (credo si faccia con le espressioni regolari?).
So che si può fare perchè dove lavoro io, un ingegnere lo aveva fatto.
Spero possiate aiutarmi grazie mille in anticipo! :)
coocooche
01-06-2011, 12:04
Ma scusa, stai parlando dei Domain Name? E visto che stai parlando di lavoro in locale, allora immagino stai parlando specificatamente del ip locale, ovvero 127.0.0.1(che di default corrisponde al Domain Name localhost). Se te vuoi modificare cioe', basta cambiare il file di hosts ed inserire tutti i domain name che vuoi che pero' corrisponderano sempre al ip 127.0.0.1. In ambienti unix like forse questa cosa lo puoi automizzare tramite scripts ma via apache non saprei...
Tasslehoff
05-06-2011, 23:07
Non credo proprio che sia possibile modificare automaticamente la configurazione di apache aggiungendo un virtualhost nuovo ogni volta che digiti un indirizzo nel browser.
Gli step sono 3:
Modificare il tuo file hosts locale (C:\Windows\System32\drivers\etc\hosts) aggiungendo il nuovo hostname (es progetto1.local, progetto2.local, provettox.local) in corrispondenza dell'indirizzo 127.0.0.1 o dell'indirizzo della tua interfaccia di rete.
Creare un nuovo virtualhost nella configurazione di Apache
Restartare Apache (anche in modalità graceful)
E' possibile che tu abbia frainteso quello che ti ha detto o mostrato il suddetto ingegnere, se riesci a farti dare maggiori dettagli faccelo sapere, sarei curioso di sapere come può aver fatto.
Ciao ragazzi, intanto vi ringrazio per avermi risposto :)
Vorrei farmelo spiegare da questo ingegnere, ma non ha molto tempo ultimamente... comunque ora sono in ufficio, appena arrivo a casa vi mostro come ho fatto io per sopperire al problema (io sono su Win7).
Vi anticipo come ho fatto:
1) Nel file httpd.conf ho creato una regola generica utilizzando espressioni regolari, quindi non c'è bisogno di inserire ogni volta un nuovo virtualhost in quanto lo prende in automatico.
2) Per sopperire al fatto che il file HOST in windows non viene aggiornato automaticamente, ho creato un programmino in vb.net che scansiona tutte le cartelle all'interno della root di apache e le salva nel file host con la formattazione 127.0.0.1 nomesito.local. Questa procedura avviene o tenendolo nella systray e facendo eseguire l'operazione a intervalli regolari, oppure avviandolo quando voglio io, così che il programmino va ad aggiornare la lista dei virtualhost.
Purtroppo non so come fare se non così anche se è un metodo un pò rustico.
Stasera appena arrivo a casa posto il programmino se vi interessa :)
Ecco il codice molto breve per fare quello che ho scritto sopra:
Sub Aggiorna()
Dim directoryList As String() ' array for directories
Dim i As Integer, sito As String(), testo As String
directoryList = System.IO.Directory.GetDirectories("directory/di/apache/")
testo = ""
For i = 0 To directoryList.Length - 1
sito = Split(directoryList(i), "\")
testo += "127.0.0.1 " + sito.Last + ".local" + vbCrLf
Next
System.IO.File.WriteAllText("C:\Windows\System32\drivers\etc\hosts", testo)
End Sub
Spero possa servire a qualcuno un giorno... ciao! :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.