[PHP] schrijf-rechten krijgen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RainerSGF
  • Registratie: Juli 2008
  • Laatst online: 17-09 22:22
In een php bestand probeer ik a.d.v. 'fopen()', 'fputs()' en 'fclose()' een html-pagina aan te maken nadat een bezoeker deze pagina heeft bezocht (doel als caching).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        $cachebestand = "index.html";
    if(file_exists($cachebestand)){
        header('Location:' . $cachebestand);
        exit();
    } else{
        ob_start("ob_gzhandler"); 
    }
        ...
       html-code
       ...
        $inhoud = ob_get_contents();
    global $cachebestand; 
    $wcache = fopen($cachebestand, 'w');
    fputs($wcache,$inhoud);
    fclose($wcache);
    ob_end_flush();


Op een lokale WAMP lukt dit probleemloos, echter nadat dit script is geuploadt op een publieke webserver krijg ik volgende foutmeldingen:

- fopen...: failed to open stream: Permission denied in ...
- fputs...: supplied argument is not a valid stream resource in ...
- fclose(): supplied argument is not a valid stream resource in ...


Wat reeds geprobeerd?
- topic fopen permission denied gelezen --> safe_mode staat uit
- chmod voor de huidige map (waarin dit php-bestand zit trouwens) eens op 744 gezet (chmod("/public_html",744) helemaal bovenaan het php-bestand gezet)

Is er iemand dit mij kan helpen deze foutmeldingen op te lossen?
(vraagje hierna: is er bij een geval waar safe_mode op 'on' staat een manier om dit te omzeilen?)

Systeem - I'm learning, I learn it from a book :)


Acties:
  • 0 Henk 'm!

  • TimDJ
  • Registratie: Februari 2002
  • Laatst online: 15:45
probeer het eens met chmod naar 755. Veel hosts draaien webserver onder andere user dan gebruiker

Freelance Drupal Developer


Acties:
  • 0 Henk 'm!

  • Morax
  • Registratie: Mei 2002
  • Laatst online: 00:30
RainerSGF schreef op dinsdag 09 maart 2010 @ 00:01:
In een php bestand probeer ik a.d.v. 'fopen()', 'fputs()' en 'fclose()' een html-pagina aan te maken nadat een bezoeker deze pagina heeft bezocht (doel als caching).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        $cachebestand = "index.html";
    if(file_exists($cachebestand)){
        header('Location:' . $cachebestand);
        exit();
    } else{
        ob_start("ob_gzhandler"); 
    }
        ...
       html-code
       ...
        $inhoud = ob_get_contents();
    global $cachebestand; 
    $wcache = fopen($cachebestand, 'w');
    fputs($wcache,$inhoud);
    fclose($wcache);
    ob_end_flush();


Op een lokale WAMP lukt dit probleemloos, echter nadat dit script is geuploadt op een publieke webserver krijg ik volgende foutmeldingen:

- fopen...: failed to open stream: Permission denied in ...
- fputs...: supplied argument is not a valid stream resource in ...
- fclose(): supplied argument is not a valid stream resource in ...


Wat reeds geprobeerd?
- topic fopen permission denied gelezen --> safe_mode staat uit
- chmod voor de huidige map (waarin dit php-bestand zit trouwens) eens op 744 gezet (chmod("/public_html",744) helemaal bovenaan het php-bestand gezet)

Is er iemand dit mij kan helpen deze foutmeldingen op te lossen?
(vraagje hierna: is er bij een geval waar safe_mode op 'on' staat een manier om dit te omzeilen?)
Van de 3 errors die je daar noemt, worden de laatste 2 in ieder geval veroorzaakt door de eerste ;)

Ik weet zo snel even niet wat jouw probleem zou zijn, maar indien je het probleem wilt omzeilen met safe_mode op "on": Binnen je webroot blijven. Ik meen dat safe_mode je lockt in je webroot, dus zodra je daar niet buiten komt zou er geen probleem mogen zijn.

Vergeet overigens niet dat je met 744 alleen maar mag schrijven indien je de owner bent van de map. Als jij niet de owner bent (jij = de user waaronder PHP/Apache draait), dan klopt het inderdaad dat je niet mag schrijven.

What do you mean I have no life? I am a gamer, I got millions!


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

- Zet de permissions van /public_html eens op 755 of 777, met 744 geef je nu alleen maar leesrechten aan iedereen
- Als je chmod() gebruikt moet je een octaal getal geven, dus 0777
- Het is een slecht idee om je hele public_html map op die manier open te zetten, maak een aparte cache dir

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • RainerSGF
  • Registratie: Juli 2008
  • Laatst online: 17-09 22:22
nee...ook krijg ik nu plots nog een melding helemaal bovenaan chmod() : operation not permitted

Systeem - I'm learning, I learn it from a book :)


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

RainerSGF schreef op dinsdag 09 maart 2010 @ 00:10:
nee...ook krijg ik nu plots nog een melding helemaal bovenaan chmod() : operation not permitted
Zie de opmerking van FAD. De server draait onder een andere gebruiker dan jezelf en heeft dus de rechten niet om jouw bestanden te chmod-den.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Als je vanaf php of apache of een ander component (ftp server) de rechten niet kan aanpassen, en je geen ssh hebt voor shell-toegang (of het is geen linux server als dat helaas je probleem is op het moment), dan kan je het soms via de file manager van het control panel doen. Veel hosting providers hebben iets als plesk, direct admin of cpanel, waar een filemanager bij zit waar je de posix permissies kan aanpassen.

Acties:
  • 0 Henk 'm!

  • RainerSGF
  • Registratie: Juli 2008
  • Laatst online: 17-09 22:22
idd...dat heb ik juist geprobeerd (cpanel --> 'fix file permissions' + cpanel --> 'fix file ownership'). Maar nog steeds wordt er bij het eerste maal uitvoeren van het script geen html-bestand aangemaakt. Wat doe ik mis?

Systeem - I'm learning, I learn it from a book :)


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
RainerSGF schreef op dinsdag 09 maart 2010 @ 00:39:
idd...dat heb ik juist geprobeerd (cpanel --> 'fix file permissions' + cpanel --> 'fix file ownership'). Maar nog steeds wordt er bij het eerste maal uitvoeren van het script geen html-bestand aangemaakt. Wat doe ik mis?
Ownership is een, permissies is de ander. Waar heb je nu de permissies op staan?

Als de owner nu jouw naam is en de group www-data (of een andere group-naam) dan wil je de rechten op 764 hebben. Als dat niet werkt, kun je 766 testen en in het aller ergste geval gebruik je een keer 777, maar dat doe je echt alleen als verder niets werkt.

Wat je moet weten: Onder welke group draait Apache. Als dat jouw primaire group is, moet 770 of 760 al werken.

[ Voor 31% gewijzigd door Room42 op 09-03-2010 00:46 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • RainerSGF
  • Registratie: Juli 2008
  • Laatst online: 17-09 22:22
Als ik het goed heb, zijn de permissies toegepast en ingesteld op de 'public_html'-map en alles bestanden in mijn account.

Systeem - I'm learning, I learn it from a book :)


Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

RainerSGF schreef op dinsdag 09 maart 2010 @ 00:39:
idd...dat heb ik juist geprobeerd (cpanel --> 'fix file permissions' + cpanel --> 'fix file ownership'). Maar nog steeds wordt er bij het eerste maal uitvoeren van het script geen html-bestand aangemaakt. Wat doe ik mis?
Doe het chmodden eens gewoon vanuit je FTP client.

Verder is het niet zo gek dat de Apache-user geen rechten heeft om rechten uit te delen. Zou nogal een potentiëel beveiligingsgat zijn.

'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.


Acties:
  • 0 Henk 'm!

  • RainerSGF
  • Registratie: Juli 2008
  • Laatst online: 17-09 22:22
Ow, ik dacht even dat het terug geen resultaat ging geven...maar gelukkig heb ik het mis.
@NME: je hebt het volledig juist. K'heb nu weliswaar de properties op de public_html-map aangepast en dat werkt nu waardoor de html-bestanden wel worden aangemaakt. Hartelijk bedankt...je bent een krak in je vak :) !!!

Systeem - I'm learning, I learn it from a book :)


Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

Waarom maak je alleen voor een cachefunctie de hele webroot schrijfbaar? Waarom niet alleen een mapje genaamd "cache"? :)

'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.


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

RainerSGF schreef op dinsdag 09 maart 2010 @ 00:01:
Is er iemand dit mij kan helpen deze foutmeldingen op te lossen?
Google. Deze letterlijke foutmelding staat miljoenen keren uitgelegd.
(vraagje hierna: is er bij een geval waar safe_mode op 'on' staat een manier om dit te omzeilen?)
Dat zou het hele punt van safe-mode op je serverinstelling een beetje nutteloos maken niet?

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1