Hallo allemaal,

Ik heb het volgende probleem: Ik heb een zip-file welke ik wil uitpakken met behulp van PHP. Nu heb ik dit op een testwebsite gedraaid, en dit werkt als ik de zip plaats in een map welke rechten 777 heeft. Nu wil ik deze zip uitpakken in de root van de website. Nu wil ik uiteraard niet mijn gehele website rechten 777 geven. Is er een manier om tijdelijk (middels php) de rechten op 777 zetten, en na het uitpakken de rechten terug te zetten?

Nu heb ik gekeken naar de chmod functie, alleen hier heb ik de rechten schijnbaar niet voor (via FTP kan ik de chmod wel gewoon aanpassen). Hierna heb ik ftp_chmod geprobeerd. Het vreemde hierbij is dat hij aangeeft dat de file niet bestaat (terwijl dit wel zo is). Google leert mij dat dit weer een permissie probleem is. Hierdoor kom ik een een cirkel van foutieve permissies terecht...

Hierbij het stukje van de ftp_chmod:

$ftp_server = "xx.xxx.xx.xx";
$ftp_user = "xxxxx";
$ftp_pass = "xxxxxxxx";

$conn = ftp_connect($ftp_server) or die("Could not connect");
ftp_login($conn,$ftp_user,$ftp_pass);

// Read and write for owner, nothing for everybody else
ftp_chmod($conn,"0600",$_SERVER['DOCUMENT_ROOT'] . "/update.zip");

...


met de volgende fout:
Warning: ftp_chmod() [function.ftp-chmod]: /home/.../public_html/update.zip: Bestand of map bestaat niet in /home/.../public_html/update.php on line 11
je root op 777 zetten klinkt echt als een héél erg slecht plan. Het verbaasd me dan ook niet dat je daar de rechten niet voor hebt.

Vertel eens waarom je de zip op de root wilt hebben
Ben je wel ingelogd? Check dat eens.
De bedoeling is om een aantal PHP bestanden die in de root staan, te vervangen met de PHP bestanden die in een zip staan op een andere server (met dezelfde naam uiteraard). De zip ophalen gaat prima, en komt netjes op de root terecht. Alleen het uitpakken geeft dus problemen.

Wat bedoel je met ingelogd? Ik log in het script in via FTP, of bedoel je een andere login?

Reageren