Hallo,
ik heb vandaag een, niet noodzakelijkerwijs verder te noemen site, omgezet van de ene host naar een andere. Alles ging redelijk vlekkeloos, omdat e.e.a. wel goed in elkaar zat (bijna alle instellingen in 1 bestand, en hiervanuit de site opgebouwd), maar 1 ding ging niet goed, dat was de variabele $DOCUMENT_ROOT. Met de komst van superglobals heet dat natuurlijk $_SERVER['DOCUMENT_ROOT'], maar beide geven op de nieuwe server, als ik ze echo hetzelfde (dus daarin ligt het probleem niet!).
De bedoeling van de makers van de site (ik heb em in beheer overgenomen) was om niet een relatieve, maar een absolute include te maken. Dus iets als:
Probleem is echter dat $DOCUMENT_ROOT bij de host pcextreme.nl, het volgende geeft als inhoud: /var/www (dus deze omgevingsvariabele werkt), maar als ik (met opzet) een parse error maak, geeft hij dit:
Parse error: parse error, expecting `','' or `';'' in /home/mijndomein.net/www/index.php on line 62
Hieruit maak ik op dat de absolute url /home/mijndomijn.net/www is, in plaats van /var/www, wat ik uit de $DOCUMENT_ROOT variabele haal.
Het vervelende bij de nieuwe host is dus dat de $DOCUMENT_ROOT niet overeenkomt met de daadwerkelijke document-root van mijn domein. /home/mijndomein/www/ werkt wel bij een include, maar /var/www werkt niet...
Nu is in veel scripts van de site, gebruik gemaakt van iets als:
Bij de oude host, was de document-rootvariabele wel geldig, maar hier niet. Mijn vraag is, of het mogelijk is om de omgevingsvariabele $DOCUMENT_ROOT bijvoorbeeld via .htaccess, te wijzigen in de juiste?
Nu heb ik namelijk iets lelijks gedaan:
ik heb in header.php (die in veel pagina's wordt geinclude) iets gezet als dit:
zodat de scripts wel werken (en naast header.php moest ik het ook in sommige andere bestanden doen, omdat header.php niet overal op de site wordt aangeroepen).
Vandaar mijn vraag of er ook een oplossing is die netter is; waarbij $DOCUMENT_ROOT weer de geldige verwijzing heeft (dus met /home/mijndomein.net
Ik heb namelijk eigenlijk geen zin in het aanpassen van alle scripts.
Alvast bedankt!
ik heb vandaag een, niet noodzakelijkerwijs verder te noemen site, omgezet van de ene host naar een andere. Alles ging redelijk vlekkeloos, omdat e.e.a. wel goed in elkaar zat (bijna alle instellingen in 1 bestand, en hiervanuit de site opgebouwd), maar 1 ding ging niet goed, dat was de variabele $DOCUMENT_ROOT. Met de komst van superglobals heet dat natuurlijk $_SERVER['DOCUMENT_ROOT'], maar beide geven op de nieuwe server, als ik ze echo hetzelfde (dus daarin ligt het probleem niet!).
De bedoeling van de makers van de site (ik heb em in beheer overgenomen) was om niet een relatieve, maar een absolute include te maken. Dus iets als:
PHP:
1
| include $DOCUMENT_ROOT.'/inhoud/blaat/blaat.php'; |
Probleem is echter dat $DOCUMENT_ROOT bij de host pcextreme.nl, het volgende geeft als inhoud: /var/www (dus deze omgevingsvariabele werkt), maar als ik (met opzet) een parse error maak, geeft hij dit:
Parse error: parse error, expecting `','' or `';'' in /home/mijndomein.net/www/index.php on line 62
Hieruit maak ik op dat de absolute url /home/mijndomijn.net/www is, in plaats van /var/www, wat ik uit de $DOCUMENT_ROOT variabele haal.
Het vervelende bij de nieuwe host is dus dat de $DOCUMENT_ROOT niet overeenkomt met de daadwerkelijke document-root van mijn domein. /home/mijndomein/www/ werkt wel bij een include, maar /var/www werkt niet...
Nu is in veel scripts van de site, gebruik gemaakt van iets als:
PHP:
1
| include $DOCUMENT_ROOT.'/map1/map2/bestand1.php'; |
Bij de oude host, was de document-rootvariabele wel geldig, maar hier niet. Mijn vraag is, of het mogelijk is om de omgevingsvariabele $DOCUMENT_ROOT bijvoorbeeld via .htaccess, te wijzigen in de juiste?
Nu heb ik namelijk iets lelijks gedaan:
ik heb in header.php (die in veel pagina's wordt geinclude) iets gezet als dit:
PHP:
1
| $DOCUMENT_ROOT='/home/mijndomein.net'; |
zodat de scripts wel werken (en naast header.php moest ik het ook in sommige andere bestanden doen, omdat header.php niet overal op de site wordt aangeroepen).
Vandaar mijn vraag of er ook een oplossing is die netter is; waarbij $DOCUMENT_ROOT weer de geldige verwijzing heeft (dus met /home/mijndomein.net
Ik heb namelijk eigenlijk geen zin in het aanpassen van alle scripts.
Alvast bedankt!
[ Voor 9% gewijzigd door Verwijderd op 11-05-2004 19:11 . Reden: php tags gebruiken :-) ]