php chmod() pas de modifier les autorisations
Je vais avoir des problèmes avec une photo téléchargement de script.
Je sais qu'il y a des centaines de ces mêmes questions, mais je n'ai pas trouvé celui qui serait travailler pour moi.
$upload_dir = "images/postcards/";
chmod($upload_dir, 777);
if (is_writable($upload_dir)) {
echo 'The file is writable';
} else {
echo 'The file is not writable';
}
Cela renvoie toujours que le fichier "n'est pas accessible en écriture"
J'ai essayé de réglage chmod
à 0777
et -rwxrwxrwx
. Mais le résultat était toujours le même. Des Idées?
- en cas de décimale
777
il est incorrect. vous devriez toujours préfixe0
vérifier ici chmod.
InformationsquelleAutor Sebastjan | 2013-03-02
Vous devez vous connecter pour publier un commentaire.
Le répertoire doit appartenir à l'utilisateur d'invoquer le script (généralement
www-data
,apache
ouhttpd
si vous exécutez le script dans un apache/*NIX de l'installation). Un utilisateur ne peut pas définir de 777 autorisations sur les répertoires, il ne possède pas.Voir la note sur le chmod() manuel:
directory must be owned by the user
.Tout d'abord , ouvrez PHP error_report par l'ajout de deux lignes sur le dessus de votre code, voir si il y a une erreur en provenance de chmod:
Assurez-vous que votre Serveur web a la permission de ce répertoire, je suppose que le Serveur n'avez pas la permission.
J'ai déjà eu le même problème que vous pouvez modifier le fichier de l'autorisation par le présent code :
Je n'ai pas d'exécuter ce code, mais je pense que c'est Ok et il va vous aider.
dites-moi si votre problème résolu.
J'ai eu des problèmes similaires à l'aide de la commande chmod, même si le fichier a été possédé par apache:apache (serveur web de l'utilisateur). Dans mon cas, SELinux a été de prendre le chemin, la désactivation, il est clair sur ce point:
Et le chmod œuvres. Maintenant sur de trouver comment faire un SELinux exception pour ce cas...
(et n'oubliez pas d'activer SELinux, bien sûr)
umask
pour mon serveur a été la meilleure option: serverfault.com/a/384922/185510