Beste mede programmeurs,
Wederom twijfel ik of dit in Professional Servers en Webhosting of in Programming hoort, maar ik probeer het hier, want ik denk dat het een direct PHP probleem/bug ding is.
Het gaat om het volgende. Op mijn Windows Server 2008 R2 hebben we IIS + PHP 5.3.6 draaien. Dit werkt in principe prima, met uitzondering dat Joomla 1.7 niet lekker functioneerde. Ik heb dus geupgrade naar PHP 5.3.8. en voila, Joomla 1.7 werkte prima.
Echter, ik ben iets tegengekomen, wat ik niet snap en waar ik via Google en php.net niet zo 123 uit kan komen. Het gaat om het volgende:
Een klant heeft op haar website een scriptje staan, dat de huidige directory uitleest d.m.v.
Met php 5.3.6 pakt hij dan de huidige map (een submap in de root) waar het scriptje in staat en kan dan door alle bestanden en mappen uit die map bladeren. Echter, na het upgraden naar 5.3.8 (en de config file aanpassen naar onze wensen en zoals het bij 5.3.6 ook was) werkt dit niet meer. De bovenstaande code komt namelijk uit op de map waarin php-cgi.exe draait.
Ik ben verder gaan testen en ook Wordpress sites werken door dit probleem niet meer. Het lijkt alsof de root van de site ineens de PHP map is geworden waardoor een include als
dus niet meer gevonden wordt.
Waar zit hem dit probleem ?
Zoals gezegd al gezocht op Google op zaken als rootdir, basedir, etc etc. Open_basedir is iets wat veel naar voren komt, maar dit stukje lijkt enkel geschikt om aan te geven waar een site wel en niet in mag komen. Met PHP 5.3.6 werkte dit al zonder config en komt men niet in de PHP map uit.
Verder (en dit heeft er misschien mee te maken) snap ik iets nog niet. Waarom werkt
wel op een submap, maar niet op de root van de site ? Ik krijg dan een access denied. Alle mappen en bestanden hebben dezelfde rechten. Bestanden openen in de root werkt wel gewoon, maar bovenstaande code dus niet.
Ik hoop dat ik uitvoerig genoeg uitgelegd heb wat het probleem is en wat ik zelf al geprobeerd heb. Debuggen is over het algemeen geen probleem, maar hier kom ik echt niet uit.
Alvast bedankt!
Aan de mods: ik blijk nogal eens een topic te openen dat niet aan de eisen voldoet. Mocht dit nu weer zo zijn, mijn excuses, ik doe echt mijn best door zelf onderzoek te doen en alleen zaken te posten die er toe doen. Zoveel mogelijk informatie te geven, FAQ's doorlezen, etc etc. Heb zelfs een van de moderators toegevoegd op MSN om me vooraf te laten informeren, maar deze persoon is niet online.
Teach me, don't punish me.
Wederom twijfel ik of dit in Professional Servers en Webhosting of in Programming hoort, maar ik probeer het hier, want ik denk dat het een direct PHP probleem/bug ding is.
Het gaat om het volgende. Op mijn Windows Server 2008 R2 hebben we IIS + PHP 5.3.6 draaien. Dit werkt in principe prima, met uitzondering dat Joomla 1.7 niet lekker functioneerde. Ik heb dus geupgrade naar PHP 5.3.8. en voila, Joomla 1.7 werkte prima.
Echter, ik ben iets tegengekomen, wat ik niet snap en waar ik via Google en php.net niet zo 123 uit kan komen. Het gaat om het volgende:
Een klant heeft op haar website een scriptje staan, dat de huidige directory uitleest d.m.v.
code:
1
| opendir('.'); |
Met php 5.3.6 pakt hij dan de huidige map (een submap in de root) waar het scriptje in staat en kan dan door alle bestanden en mappen uit die map bladeren. Echter, na het upgraden naar 5.3.8 (en de config file aanpassen naar onze wensen en zoals het bij 5.3.6 ook was) werkt dit niet meer. De bovenstaande code komt namelijk uit op de map waarin php-cgi.exe draait.
Ik ben verder gaan testen en ook Wordpress sites werken door dit probleem niet meer. Het lijkt alsof de root van de site ineens de PHP map is geworden waardoor een include als
code:
1
| include('./wp-header.php'); |
dus niet meer gevonden wordt.
Waar zit hem dit probleem ?
Zoals gezegd al gezocht op Google op zaken als rootdir, basedir, etc etc. Open_basedir is iets wat veel naar voren komt, maar dit stukje lijkt enkel geschikt om aan te geven waar een site wel en niet in mag komen. Met PHP 5.3.6 werkte dit al zonder config en komt men niet in de PHP map uit.
Verder (en dit heeft er misschien mee te maken) snap ik iets nog niet. Waarom werkt
code:
1
| opendir('.'); |
wel op een submap, maar niet op de root van de site ? Ik krijg dan een access denied. Alle mappen en bestanden hebben dezelfde rechten. Bestanden openen in de root werkt wel gewoon, maar bovenstaande code dus niet.
Ik hoop dat ik uitvoerig genoeg uitgelegd heb wat het probleem is en wat ik zelf al geprobeerd heb. Debuggen is over het algemeen geen probleem, maar hier kom ik echt niet uit.
Alvast bedankt!
Aan de mods: ik blijk nogal eens een topic te openen dat niet aan de eisen voldoet. Mocht dit nu weer zo zijn, mijn excuses, ik doe echt mijn best door zelf onderzoek te doen en alleen zaken te posten die er toe doen. Zoveel mogelijk informatie te geven, FAQ's doorlezen, etc etc. Heb zelfs een van de moderators toegevoegd op MSN om me vooraf te laten informeren, maar deze persoon is niet online.
Teach me, don't punish me.