[apache] Document Root per directory

Pagina: 1
Acties:

  • StarLite
  • Registratie: Januari 2000
  • Laatst online: 01-12-2025

StarLite

'ON ERROR RESUME NEXT

Topicstarter
Ik zit met een klein probleempje met mijn apache.
Op mijn laptop [win XP] heb ik lokaal apache/mysql etc draaien om een aantal sites te ontwikkelen en testen.
Tot voor kort had ik altijd 1 site draaien die direct in mijn www-root stond, dit werkte prima.
Nu wil ik een 2e [en later ws meer] site gaan draaien op mijn laptop.
Ik heb in mijn wwwroot meerdere directories staan, 1 voor elke site, phpmyadmin etc.

Het probleem is allen dat de sites gebruik maken van $_SERVER['DOCUMENT_ROOT'] en een verkeerd pad doorkrijgen al document root.

voorbeeld:
Webroot is : c:\www\
Site 1 staat in c:\www\site1\
Site 2 staat in c:\www\site2\

Nou hebben beide sites standaard als document root c:\www\. Hierdoor gaan de includes fout, aangezien die nu wijzen naar c:\www\includes\ in plaats van c:\www\site1\includes\ en c:\www\site2\includes\.

Nou kan ik natuurlijk 2 virtual hosts aanmaken met site1.localhost en site2.localhost en die in mijn hosts file zetten, maar ik wil de site ook laten zien aan mensen [via netwerk, dus op een andere PC in een browser] en het is niet handig dat iedereen die ik het laat zien zijn hosts file moet aanpassen.

Ik heb rondgezocht naar een oplossing in apache, maar alle virtualhost voorbeelden gaan uit van een bestaand domein.
Ik wil dat als ik naar http://localhost/site1 ga, dat de document root van die site c:\www\site1 is en als ik naar http://localhost/site2 ga dat de document root c:\www\site2 is. In IIS gebeurt dat volgens mij met een alias, maar ik heb nog niet iets dergelijks voor apache kunnen vinden.
Hoe kan ik dit voor elkaar krijgen?

tyrips, tywreps, tiewreps, tiereps, tie raps, ripties, taiwraps, kabelbindbandjes » Tie Wraps
\o/


  • Hellsystem
  • Registratie: November 2006
  • Laatst online: 27-03 12:08
Al in de handleiding van apache gekeken? :*)

  • TheJoxer
  • Registratie: Maart 2004
  • Laatst online: 14-05-2025

TheJoxer

Nou ja, dat dus....

Hellsystem schreef op woensdag 29 november 2006 @ 14:46:
Al in de handleiding van apache gekeken? :*)
Inderdaad .. onder het kopje VHOST dan ...

code:
1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
    ServerAdmin admin@domein.nl
    DocumentRoot c:/wwwroot/site1/
    ServerName site1.localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@domein.nl
    DocumentRoot c:/wwwroot/site2/
    ServerName site2.localhost
</VirtualHost>


Meer kauw ik je echt niet voor hoor....
Dit had je simpel zelf kunnen vinden in de handleiding en met de search...

  • PerfectPC
  • Registratie: Februari 2004
  • Laatst online: 01-02 11:46
TheJoxer schreef op woensdag 29 november 2006 @ 21:54:Meer kauw ik je echt niet voor hoor....
Dit had je simpel zelf kunnen vinden in de handleiding en met de search...
meer hoef je ook helemaal niet voor te kauwen want dit is helemaal geen oplossing...

als je geen beschikking hebt over een dns server waar je meerdere domeinen naar jouw apache kan laten verwijzen om via vhosts een onderscheid te maken kan je een beetje vals proberen spelen en vhost indeling doen op basis van de poort nummers (en/of ip adressen)

  • Graham
  • Registratie: Maart 2001
  • Laatst online: 26-03 23:29
PerfectPC schreef op woensdag 29 november 2006 @ 22:18:
[...]

meer hoef je ook helemaal niet voor te kauwen want dit is helemaal geen oplossing...

als je geen beschikking hebt over een dns server waar je meerdere domeinen naar jouw apache kan laten verwijzen om via vhosts een onderscheid te maken kan je een beetje vals proberen spelen en vhost indeling doen op basis van de poort nummers (en/of ip adressen)
Prima oplossing die TheJoxer geeft. Alleen als hij geen dns server heeft is dat idd een probleem. Echter is dat probleem ook redelijk makkelijk op te lossen dmv www.zoneedit.com als DNS (icm virtualhosts in Apache).

  • PerfectPC
  • Registratie: Februari 2004
  • Laatst online: 01-02 11:46
Graham schreef op woensdag 29 november 2006 @ 22:22:
Prima oplossing die TheJoxer geeft. Alleen als hij geen dns server heeft is dat idd een probleem. Echter is dat probleem ook redelijk makkelijk op te lossen dmv www.zoneedit.com als DNS (icm virtualhosts in Apache).
zoneedit helpt ook geen millimeter vor een dns probleem op je lokale lan hé , daar gaat het om ;) en idd moest er geen probleem zijn, was joxer zn oplossing goed, maar zo ver wal de TS zelf ook al wel gekomen. mijn oplossing (met poorten en/of ip's spelen) geeft wel wat meer adem- en denkruimte.

  • StarLite
  • Registratie: Januari 2000
  • Laatst online: 01-12-2025

StarLite

'ON ERROR RESUME NEXT

Topicstarter
De oplossing van TheJoxer had ik al gevonden, zo heb ik het ook draaien op een machine thuis waar ik alleen vanaf mijn PC af op kom, dus daar werkt het DNS/hosts truukje wel.

Ik wil dus echt zonder DNS geklooi werken als het kan. Ik zat zelf te denken om misschien meerdere apaches te draaien, 1 per site elk op een eigen poort, maar dat is niet de mooie en optimale oplossing.

tyrips, tywreps, tiewreps, tiereps, tie raps, ripties, taiwraps, kabelbindbandjes » Tie Wraps
\o/


  • Orion84
  • Registratie: April 2002
  • Laatst online: 16:47

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Heb geen uitgebreide kenis van PHP, maar is het geen optie om in plaats van de oplossing te zoeken in Apache er gewoon omheen te coden met behulp van wat andere velden van $_SERVER? Je kunt daar ook het path van het huidige script opvragen, en dat path kan je dan wel weer inkorten tot de gewenste 'document-root'.

Bijvoorbeeld:
PHP:
1
$docroot = dirname($_SERVER['SCRIPT_FILENAME']);


Kun je bij includes sowieso niet gewoon met relative paths werken? Of gaat dat juist fout door de verkeerde info in $_SERVER['DOCUMENT_ROOT']?

Desnoods kan je altijd hetgeen achter de standaard docroot moet komen gewoon hardcoden:

PHP:
1
$docroot = $_SERVER['DOCUMENT_ROOT']."/site1/";
Of iets dergelijks?

[ Voor 47% gewijzigd door Orion84 op 29-11-2006 23:26 ]

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


  • PerfectPC
  • Registratie: Februari 2004
  • Laatst online: 01-02 11:46
StarLite schreef op woensdag 29 november 2006 @ 22:35:
Ik wil dus echt zonder DNS geklooi werken als het kan. Ik zat zelf te denken om misschien meerdere apaches te draaien, 1 per site elk op een eigen poort, maar dat is niet de mooie en optimale oplossing.
voor vhosts vrees ik het ergste, die kan je maar op 3 manieren benaderen: per ip, per poort en per domainname.
domeain is geen optie, ip allicht ook niet dus schiet poort over. op zich geen ramp, apache kan op verschillende poorten tegelijkertijd luisteren. zo kan je bv op poort 80 een page zetten met een link naar de andere vhosts die op andere poorten draaien, zo moet je geen rare dingen gaan onthouden en/of intikken in je browser.

uiteraard is rond het probleem coden nog veel beter ;)

[ Voor 3% gewijzigd door PerfectPC op 29-11-2006 22:40 ]

Pagina: 1