[FC5][apache/php]document_root homedir

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 06-01 19:09
Ik heb een webserver met daarnaast ook enkele user directory's eronder.
bv:

ww.domain.nl/ verwijst naar /www/htdocs
ww.domain.nl/~pietje/ verwijst naar /home/pietjes/htdocs
ww.domain.nl/~jantje/ verwijst naar /home/jantje/htdocs

dat werkt allemaal wel, maar mijn probleem is dat de parameter $_SERVER['DOCUMENT_ROOT'] blijft verwijzen naar /www/htdocs ookal run ik het bestand in een van de userdirs.

Is het mogelijk om bv $document_root van bv /~pietje/index.php te laten verwijzen naar zijn eigen home-directory ipv naar de hoofd-directory ?

Taaaa taa taa taaaa taa taa ta taaataaaaa.


  • markg85
  • Registratie: Februari 2003
  • Laatst online: 23-12-2025
moet via virtual host denk ik... anders zou ik t ook niet weten

virtualhost voorbeeld:
<VirtualHost *:80>
        ServerAdmin 1@1.1
        DocumentRoot /var/www/test
        ServerName test.domain.nl
</VirtualHost>


edit..

misschien kan het ook via htaccess? dus dit in een htaccacc bestand zetten:
DocumentRoot /var/www/test

[ Voor 19% gewijzigd door markg85 op 08-12-2006 19:43 ]


  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 06-01 19:09
markg85 schreef op vrijdag 08 december 2006 @ 19:39:
moet via virtual host denk ik... anders zou ik t ook niet weten

virtualhost voorbeeld:
<VirtualHost *:80>
        ServerAdmin 1@1.1
        DocumentRoot /var/www/test
        ServerName test.domain.nl
</VirtualHost>


edit..

misschien kan het ook via htaccess? dus dit in een htaccacc bestand zetten:
DocumentRoot /var/www/test
met virtualhost ben ik ook aan het stoeien geweest en het is me niet gelukt.

ook met htaccess lukt het niet, ik krijg dan de melding
[Fri Dec 08 19:47:31 2006] [alert] [client 192.168.xx.xx] /home/xxx/public_html/.htaccess: DocumentRoot not allowed here

Taaaa taa taa taaaa taa taa ta taaataaaaa.


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

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Misschien heb je hier iets aan:

Orion84 in "[apache] Document Root per directory"

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


  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 06-01 19:09
dat was ik ook al tegengekomen, het zou wel kunnen werken.
Maar dan zou ik al mijn pagina's moeten aanpassen. Ook is de site dan niet 1-op-1 te plaatsen op een andere server zonder dat ik weer de files moet aanpassen.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


  • markg85
  • Registratie: Februari 2003
  • Laatst online: 23-12-2025
nou.. nu ik dat zo zie denk ik eigenlijk dat de beste manier gewoon een combinatie is van document root en script file name.. even een voorbeeldje..:

kijk om mijn test apache heb ik het domein mage.nl (bestaat alleen op mijn pc)
in mage.nl heb ik een test sun domein: test.mage.nl

de document root daar is:
$_SERVER["DOCUMENT_ROOT"] => /var/www/test

scriptfilename:
$_SERVER["SCRIPT_FILENAME"] => /var/www/test/SERVERvariables.php

nu kan je zelfs zonder document root je root path krijgen..
kijk dit kleine scriptje heb ik daarvoor gemaakt in een thumbnail class waar ook altijd een pad nodig was:
code:
1
echo substr($_SERVER["SCRIPT_FILENAME"], 0, - strlen(end(explode('/', $_SERVER["SCRIPT_FILENAME"]))));


dit geeft bij mij als resultaad:
/var/www/test/

goed toch? en je kan nu je directory alle namen geven die je wel.. dat scriptje hou je niet voor de gek ;)

en ja.. je zal je script er wel even voor moeten aanpassen, maar dan werkt het daarna ook gewoon op alle servers :) je moet trouwens nooit van document root uitgaan!! dat pad klopt alleen in de root van je site zelf dus zodra je in een directory zit klopt het al niet meer..

ik hoop dat je hier iets mee kunt..
als je overal nu al document root gebruikt en je wil het toch niet overal veranderen dan kan je dit doen:
code:
1
$_SERVER["DOCUMENT_ROOT"] = substr($_SERVER["SCRIPT_FILENAME"], 0, - strlen(end(explode('/', $_SERVER["SCRIPT_FILENAME"]))));


dat is wel een lelijke hack!!

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

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Ipv al die strlen en explode meuk kan je ook gewoon dirname() gebruiken ;)

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


  • markg85
  • Registratie: Februari 2003
  • Laatst online: 23-12-2025
Orion84 schreef op vrijdag 08 december 2006 @ 23:23:
Ipv al die strlen en explode meuk kan je ook gewoon dirname() gebruiken ;)
lol dat wist ik toen nog niet :P en bij het schrijven van me reply was ik m vergeten :P

even de code:
PHP:
1
2
3
echo substr($_SERVER["SCRIPT_FILENAME"], 0, - strlen(end(explode('/', $_SERVER["SCRIPT_FILENAME"]))));
echo '<br>';
echo dirname($_SERVER["SCRIPT_FILENAME"]) . '/';


resultaat:
/var/www/test/
/var/www/test/

exact hetzelfde dus :) en kortere code.

[ Voor 34% gewijzigd door markg85 op 09-12-2006 14:47 ]


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

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

En vooral een stuk leesbaarder ;)

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


  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 06-01 19:09
Ik heb iets heeeel anders gedaan om het probleem op te lossen.
Op mijn server een tweede webserver geinstalleerd die naar een andere poort luistert en als hoofddirectory de directory van de useraccount.

Niet netjes, maar het werkt zonder dat ik de code zelf hoef aan te passen.

Taaaa taa taa taaaa taa taa ta taaataaaaa.

Pagina: 1