[PHP/WinServer] Geen rechten om naam temp dir te schrijven

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Hi Tweakers,

Vandaag ben ik tegen een probleem aangelopen, wat ik een half jaar geleden ook al heb gehad. Ik heb dat probleem toen ook niet kunnen oplossen, niet kunnen vinden op internet, en dagen gezocht en gegoogled.

Het probleem is als volgt:
Ik heb een script geschreven op PDF-documenten uit te draaien. (Met behulp van meerdere plug-ins: FPDF, TCPDF en nog een aantal)

Deze functie werkt perfect onder WinXP, Win7, MacOS X en mijn eigen webserver. (ISS, Apache en Xampp)
Zodra ik de website op een windows server machine overzet, krijg ik de melding dat de PDF niet gemaakt kunnen worden. TCPDF gaf aan dat het temp-bestand niet geopend kan worden. De andere PDF-creators gaven zulks gelijke berichten terug. De PHP instellingen heb ik exact gekopieerd, rechten staan exact hetzelfde op de benodigde mappen. Toch blijft PHP continue dezelfde foutmelding weergeven, en de PDF wordt niet gemaakt.

Is er iemand die hier een oplossing voor weet?

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19-09 11:00

Ventieldopje

I'm not your pal, mate!

Ik denk dat in je php.ini toch iets niet helemaal lekker zit zodat hij niet voldoende rechten krijgt om c:\temp te openen. Wellicht een oplossing is om zelf een temp dir te maken waar hij wel rechten heeft, in je application dir als je een framework als SF of Zend gebruikt die net buiten je wwwroot staat of anders gewoon binnen je wwwroot ;)

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Ventieldopje schreef op donderdag 29 december 2011 @ 01:01:
Ik denk dat in je php.ini toch iets niet helemaal lekker zit zodat hij niet voldoende rechten krijgt om c:\temp te openen. Wellicht een oplossing is om zelf een temp dir te maken waar hij wel rechten heeft, in je application dir als je een framework als SF of Zend gebruikt die net buiten je wwwroot staat of anders gewoon binnen je wwwroot ;)
Heb ik ook al geprobeerd. Ik gebruik geen frameworks..

  • Cartman!
  • Registratie: April 2000
  • Niet online
Klinkt als een rechten issue waarbij je 2 machines simpelweg niet identiek zijn. Kleine testcase maken en vanuit die testcase iets in de temp-dir proberen te schrijven. Lekker even debuggen dus :) Of schrijf de boel anders niet naar de temp maar naar een eigen gedefineerde map binnen je eigen homedir.

  • wjzijderveld
  • Registratie: Augustus 2005
  • Laatst online: 23-08 10:55
Weet je naar welke tmp map wordt geschreven?
Misschien kan http://nl.php.net/manual/en/function.sys-get-temp-dir.php je voorruit helpen?

Canon EOS60D | Canon 100mm f/2.8 USM | Canon 100-400mm f/4.5-5-6L | Canon 10-22mm f/3.5-4.5 USM | Canon 430EX II


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Cartman! schreef op donderdag 29 december 2011 @ 10:27:
Klinkt als een rechten issue waarbij je 2 machines simpelweg niet identiek zijn. Kleine testcase maken en vanuit die testcase iets in de temp-dir proberen te schrijven. Lekker even debuggen dus :) Of schrijf de boel anders niet naar de temp maar naar een eigen gedefineerde map binnen je eigen homedir.
Dat het een rechten issue is, was ik zelf ook al achter gekomen. Het probleem is alleen dat al zet ik de rechten op alle mappen read-write voor everyone op de temp-map, nog steeds werkt het niet..

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19-09 11:00

Ventieldopje

I'm not your pal, mate!

Cartman! schreef op donderdag 29 december 2011 @ 10:27:
Klinkt als een rechten issue waarbij je 2 machines simpelweg niet identiek zijn. Kleine testcase maken en vanuit die testcase iets in de temp-dir proberen te schrijven. Lekker even debuggen dus :) Of schrijf de boel anders niet naar de temp maar naar een eigen gedefineerde map binnen je eigen homedir.
Even lezen, dat zeg ik dus :+ Gewoon map maken en je libraries die een temp dir nodig hebben configureren om die map te gebruiken ;)
Mastha-Hacker schreef op donderdag 29 december 2011 @ 10:34:
[...]


Dat het een rechten issue is, was ik zelf ook al achter gekomen. Het probleem is alleen dat al zet ik de rechten op alle mappen read-write voor everyone op de temp-map, nog steeds werkt het niet..
Dat is wel vreemd, waar staat je temp map dan? Heeft "Everyone" alle rechten of alleen jij zelf?

[ Voor 28% gewijzigd door Ventieldopje op 29-12-2011 10:35 ]

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Er wordt standaard geschreven naar de C:\Windows\Temp.
Ik heb al een een map op de D:\ aangemaakt, en die geprobeerd, ook met alle rechten read write, ook al geprobeerd een map te maken in de wwwroot, en die als temp aanwijzen. Alles met nul op rekest..

"Everyone" heeft alle rechten, en alle andere gebruikers die erbij stonden ook.. (Inclusief ikzelf, IUSR en IISUSR)

[ Voor 18% gewijzigd door Mastha-Hacker op 29-12-2011 10:43 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Kun je wel schrijven naar een bestand in een simpele testcase, dus een PHP-script dat niet meer doet dan een bestand openen in je wwwroot, ernaar schrijven en het weer sluiten? Als dat lukt: kun je datzelfde ook doen met een bestand in je tempdir? Dit is gewoon een kwestie van identificeren waar het probleem zit voordat je in het wilde weg rechten gaat uitdelen aan alle users die je kan vinden. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1