Door
Bart V B
op 22-03-2017 09:46
gewijzigd op 22-03-2017 09:48
1.488 views
Mensen, ik zou normaal gesproken nooit een topic openen met een vraag over virtualhosts.
Maar nu heb ik er toch een. Ik denk dat ik in mijn leven al zeker meer dan 100 virtualhosts heb aangemaakt dus dat moet toch een koud kunstje zijn.
De situatie:
men neme:
- 1 virtual machine met ubuntu 16.04 server.
- apache geïnstalleerd. (werkt, ip in browser en krijg de default pagina)
- virtual host aangemaakt
- apache opnieuw gestart
- /etc/hosts aangepast met juiste ip adres
Voila, zou je zeggen het moet werken.
In de access.log zie ik niets terug als een 404. Klopt ook want ik krijg geen pagina voor mijn neus.
Als ik op de server zelf een wget uitvoer, dan haalt ie netjes de index.html op.
Dus in principe zit het goed.
De virtuele server staat in de zelfde iprange als mijn pc:
192.168.1.102 <- server
192.168.1.107 <- client
Dus in mijn ogen zou dit gewoon moeten werken.
192.168.1.102 intikken in de browser op 192.168.1.107 werkt.
firewall doen we niet aan dus die kan ook geen roet in het eten gooien.
Error.log ook nagepluisd, die is mooi leeg.
Maar wat dan wel?
Misschien iemand nog ideeën?
IS ${APACHE_LOG_DIR} wel gevuld? Probeer het tijdelijk eens te hardcoden zonder die variabele.
Kijk dan eens of het werkt? Vergeet Apache ook niet even te herstarten tussen tijds.
EDIT 2
Effe wachten...
Want nu snap ik er even helemaal niets van.
Apache access.log geeft een 404 error op mijn pagina.
192.168.1.107 - - [22/Mar/2017:10:37:45 +0100] "GET /example.lc/ HTTP/1.1" 404 505 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
Ik heb 000-default.conf uitgeschakeld, dus nu neemt hij de eerstvolgende virtual host.
En dat klopt want ik krijg de testpagina te zien als ik het ip adres intik.
Als ik example.lc indruk dan word het een 404 pagina. Dat kan toch helemaal niet?
Voor degene die tegen dit probleem aanloopt als je een virtualbox met ubuntu server (of andere distro) wil gebruiken het is eenvoudiger dan je denkt.
Op de client, in mijn geval dat een windows pc met windows10 verander je:
C:\Windows\System32\drivers\etc\hosts
Zet daar in het ipadres van de vituralbox server:
192.168.1.102 example.lc
En het werkt.
Dus wat je normaal gesproken alleen doet op de server /etc/hosts aanpassen moet dus ook op de client.
In dit gval hoef je zelfs niets aan te passen op de server, op de client is voldoende.
Je zou natuurlijk ook een DNS server kunnen draaien waar je die verwijzingen in zet, maar dat is weer een stapje verder.
--> Dus wat je normaal gesproken alleen doet op de server /etc/hosts aanpassen moet dus ook op de client.
De reden daarvan is zoals Ben al aangeeft, example.lc wordt niet geresolved in een dns.
Dit moet dus op de client omdat apache daadwerkelijk de string example.lc moet ontvangen om te kunnen beslissen/interpreteren tbv de verschillende virtualhosts. Totdat je dit in C:\Windows\System32\drivers\etc\hosts kwam er slechts in ip adres binnen en dat is de reden waarom je 404's kreeg.
Nou, om eerlijk te zijn was ik al bezig om een DNS server op te zetten Ben. :)
Maar inderdaad dat was een voor mij even tandje teveel.
(houd me aanbevolen voor een fatsoenlijk stukje leesvoer hoe het precies werkt)
Dat is uiteindelijk wel wat ik moet hebben, om mijn test opstelling goed te kunnen testen.
Efin, ik ben al blij dat dit zo nu werkt.
Weer wat geleerd wat ik nog niet wist.