safe mode is off,
directory exists
directory has permission 0777
can not write

Wat gaat hier fout?

<?php

$nggRoot = "/home/projects/wp/www/wp-content/gallery/";

// Check for safe mode
if( ini_get('safe_mode') ){
echo "Safe mode is on<br />";
}else{
echo "Safe mode is off<br />";
}

echo file_exists($nggRoot);
echo '<br/>';
echo fileperms($nggRoot);
echo '<br/>';

$perms = base_convert(fileperms($nggRoot), 10, 8);
$perms = substr($perms, (strlen($perms) - 3));

echo $perms;
echo '<br/>';

if ( !is_writeable( $nggRoot ) ) {
echo ' <strong>' . $nggRoot . '</strong> is not writeable <br />';
}

echo 'finished';
?>

output:

Safe mode is off
1
16895
777
/home/projects/wp/www/wp-content/gallery/ is not writeable
finished
Het is een directory en die kan je niet overschrijven.
Bij nader inzien: Geen idee.
Ik denk dat de map die je wilt overschrijven niet jouw eigendom is.
PHP.net: Returns TRUE if the filename exists and is writable. Is dat ook van toepassing op een directory of moet je misschien een filename meegeven??
De map is inderdaad niet mijn eigendom, apache zal onder de user 'apache' zijn ingelogd terwijl de map owner de user is die bestanden aanmaakt op de ftp (in mijn geval ikzelf). PHP safe mode staat echter op off omdat de website op een webhost draait met meerdere pakketten, dus nu zal het script dat uitgevoerd word onder apache moeten terugvallen op de filepermissies, 'apache' valt dan onder de 'user', daarom staat de filepermissie van de map op 777 zodat ook apache kan schrijven in de map volgens mij.
Nogmaals: probeer eens een filename in plaats van een directoryname??
$nggRoot = "/home/projects/wp/www/wp-content/gallery/test.txt"
Aad B op 13/10/2011 11:07:07

PHP.net: Returns TRUE if the filename exists and is writable. Is dat ook van toepassing op een directory of moet je misschien een filename meegeven??


Van php.net:
Returns TRUE if the filename exists and is writable. The filename argument may be a directory name allowing you to check if a directory is writable.

Keep in mind that PHP may be accessing the file as the user id that the web server runs as (often 'nobody'). Safe mode limitations are not taken into account.
andere map genaamd

$nggRoot = "/home/projects/wp/www/wp-content/uploads/";

werkt wel in dit script.

Ik open via Filezilla deze mappen, zowel uploads als gallery staan beide op 0777 en zelfde owner en group

Reageren