PHP mkdir() et fopen() ne fonctionne pas - les autorisations de problème? umask problème?

Suivantes script PHP ne parvient pas à créer le répertoire. Il ne sera pas suffisante pour créer le fichier (si le répertoire existe déjà).

ini_set('error_reporting', E_ALL);

define('ABSPATH', $_SERVER['DOCUMENT_ROOT']);
echo ABSPATH . '<br /><br />';

$dir_to_make = ABSPATH . '/aaatest';
$file_to_make = ABSPATH . '/aaatest/aaatest.txt';

echo umask() . '<br />';

mkdir($dir_to_make) or die('could not create directory');
fopen($file_to_make) or die('could not open/create file');

Le umask() retourne une valeur de 18 ans. La racine du document dispose d'un délai de ( /var/www/bla/websitename.com/httpdocs ).

Je ne comprends pas complètement umask(), je ne suis pas sûr de savoir comment bien l'utiliser. Je ne sais pas si c'est le problème ou pas, mais il ne semble pas être susceptible. Dois-je changer le umask, créez le fichier/répertoire, puis changer de nouveau? Quel doit être le umask de modifier/créer/modifier les fichiers/répertoires? Si le serveur est configuré différemment?

quel est le message d'erreur que php génère? si ce n'est pas de l'imprimer dans le flux html, alors il sera dans le journal du serveur.
PHP Warning: mkdir() [<a href='function.mkdir " >function.mkdir</a>]: Permission denied in /var/www/blah/websitename.com/httpdocs/aaa.php sur la ligne 13
Je dois également ajouter que sur ce serveur, dans le même compte, j'ai une installation complète de WordPress, qui est en cours d'exécution fine (téléchargement de fichiers, mise à jour des plugins, etc).
ah oui, votre processus PHP ne dispose pas des autorisations d'écriture pour créer le répertoire (voir ma réponse ci-dessous). Vous devriez tout d'abord être certain à 100% que vous êtes de passage le bon chemin pour mkdir. Si vous avez confirmé que vous êtes en utilisant le chemin d'accès correct, alors vous avez certainement un problème d'autorisations - vous aurez besoin d'accorder les autorisations nécessaires sur le répertoire racine du document, de sorte que votre processus php peut écrire. Si vous n'avez pas administrative privs sur votre serveur, cela peut être une tâche pour un administrateur système.
wordpress serait (probablement) exiger que PHP puisse écrire dans doc_root. Donc, je voudrais confirmer que votre $dir_to_make et $file_to_make contiennent les chaînes que vous pensez qu'ils font. les imprimer comme cela, donc il n'y a pas de confusion: echo "[{$dir_to_make}]"

OriginalL'auteur matthewpavkov | 2010-10-31