PHPscript in linux (ubuntu)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

M A

M A

27/09/2006 10:23:00
Quote Anchor link
Hallo,

Als ik het vogende programma uitvoer:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$fileName
="test2.txt";
print "Writing to $fileName<br>";
$fp=fopen($fileName, "w") or die("Couldn't open $fileName");
fwrite($fp, "Hello world\n");
fclose($fp);
print "Appending to $fileName<br>";
$fp=fopen($fielName, "a") or die("Couldn't open $fileName");
fputs($fp, "And another things\n");
fclose($fp);
?>


dan krijg ik het volgende bericht:
Writing to test2.txt

Warning: fopen(test2.txt) [function.fopen]: failed to open stream: Permission denied in /var/www/listing11.13.php on line 4
Couldn't open test2.txt


Heeft iemand enig idee hoe ik dit probleem op kan lossen?

Alvast bedankt,
P-B
 
PHP hulp

PHP hulp

23/11/2024 21:42:37
 
- -

- -

27/09/2006 11:28:00
Quote Anchor link
rechten geven om het bestand te mogen openen, ik denk chmodden naar 0777 of 0775
 
Winston Smith

Winston Smith

27/09/2006 11:36:00
Quote Anchor link
Jonathan:
rechten geven om het bestand te mogen openen, ik denk chmodden naar 0777 of 0775
Dat doe je door in de console naar de map te gaan waarin je tekstbestand staat, en dan als root (of eigenaar van het bestand) in te tikken:
Quote:
chmod o+w naamvanbestand.txt


Eventueel kan je het ook vanuit je phpscript doen, maar dan moet je wel rechten hebben om het aan te mogen passen :)
 
- SanThe -

- SanThe -

27/09/2006 12:06:00
Quote Anchor link
Ik denk dat je geen schrijfrechten hebt in de directory.
 
M A

M A

27/09/2006 12:11:00
Quote Anchor link
Inderdaad. Ik heb geen schrijfrechten in de map. Ik heb wel geprutst met
sudo chmod 777 /var/www/listing11.13.php
sudo chmod 775 /var/www/listing11.13.php

maar het hielp niet.

Hoe komt het?
 
M A

M A

27/09/2006 12:14:00
Quote Anchor link
Trouwens bestaat het bestand test2.txt nog niet. Ik neem aan dat het programma zelf het zal moeten maken!
 
Winston Smith

Winston Smith

27/09/2006 12:28:00
Quote Anchor link
Ik meen dat het bestand zelf wordt aangemaakt als het nog niet bestaat, maar ik kan dat zo gauw niet terugvinden op php.net.

Probeer de hele map (in plaats van het bestand apart schrijfrechten te geven), en voeg eventueel --recursive toe (zodat mappen binnen die map ook gechmod worden).

Edit:
Het bestand wordt inderdaad aangemaakt als het nog niet bestaat (zie de optie 'w' op php.net). De oorzaak van je probleem is dus waarschijnlijk dat je geen schrijfrechten in de map hebt. (Kan dus ook liggen aan de rechten die PHP heeft).
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
 
- SanThe -

- SanThe -

27/09/2006 12:32:00
Quote Anchor link
Hoe staan de schrijfrechten van de map en wie is owner en wie is group?
 
M A

M A

27/09/2006 14:27:00
Quote Anchor link
Schrijfrechten staan:
drwxr-xr-x
1200755
De owner en group is root.


Ik heb ook met root account geprobeert maar het lukte mij niet!
Zou het aan php-rechten kunnen liggen?
 
- SanThe -

- SanThe -

27/09/2006 15:06:00
Quote Anchor link
Mehdi:
Schrijfrechten staan:
drwxr-xr-x
1200755
De owner en group is root.


Ik heb ook met root account geprobeert maar het lukte mij niet!
Zou het aan php-rechten kunnen liggen?

Root mag alles.

Maar als owner en group 'root' is en Apache draait, zoals het hoort, onder zijn eigen user (www of www-data of ....) dan mag Apache daar dus niet schrijven. Dus je script ook niet.
 
- SanThe -

- SanThe -

27/09/2006 15:10:00
Quote Anchor link
Als je nou echt ergens wilt gaan schrijven, dan log je in als root, maak een nieuwe directory in die map aan (public) en geef die nieuwe (lege) directory de 777 rechten. Dan is je site veilig en kan iedereen, dus ook je script in die nieuwe map schrijven.
 
M A

M A

27/09/2006 15:25:00
Quote Anchor link
Dus volgens jou, moet ik me eerst uitloggen, daarna als root inloggen, naar /var/www gaan, een map maken, chmod 777 /vaar/www/map uitvoeren, weer uitloggen en als een normale gebruikers inloggen dan wordt het porbleem opgelost, als ik scripten in die map schrijf.
Klopt dat allemaal?
 
- SanThe -

- SanThe -

27/09/2006 16:11:00
Quote Anchor link
Mehdi:
Dus volgens jou, moet ik me eerst uitloggen, daarna als root inloggen, naar /var/www gaan, een map maken, chmod 777 /vaar/www/map uitvoeren, weer uitloggen en als een normale gebruikers inloggen dan wordt het porbleem opgelost, als ik scripten in die map schrijf.
Klopt dat allemaal?

Ja. Noem de map public dan weet je gelijk aan de naam dat die open staat voor iedereen.

Ik ga nu de deur uit en ik kijk later weer even naar het topic.
 
M A

M A

27/09/2006 18:18:00
Quote Anchor link
Heej SanThe,

Heel erg bedankt. Jij bent mijn engel.Het is opgelost. Mag ik je bericht sturen als ik weer iets tegenkom waar ik zelf niet uit kan?

Groetjes,
P-B
Gewijzigd op 01/01/1970 01:00:00 door M A
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.