autorisation refusée sur mkdir
- Je utiliser mkdir()
pour créer un répertoire sur mon serveur:
//$var_name is equal to an md5() hash
$path = "/var/www/publish/" . $var_name;
if(mkdir($path)) {
echo "success";
} else {
echo "error";
}
Cela donnera une erreur due à un refus d'autorisation. En regardant sur mon serveur, en faisant ls -lh
drwxr-xr-x 2 root root 4.0K Aug 17 09:05 publish
Mais si mon $path
est égal à $path = "/var/www/" . $var_name;
il va créer le dossier que j'attendais. Ce qui semble être la question ici.
il ressemble à publier existe déjà, donc ce n'est pas la question. Cependant personne n'mais
Oui, à droite. C'est pourquoi j'ai supprimé mon commentaire et la réponse.
root
avoir accès en écriture sera certainement arrêter de vous faire de nouveaux répertoires (depuis qui gère leur serveur web de travailleurs en tant que root...)Oui, à droite. C'est pourquoi j'ai supprimé mon commentaire et la réponse.
OriginalL'auteur Leandro Garcia | 2012-08-17
Vous devez vous connecter pour publier un commentaire.
Les autorisations pour le
/var/www/publish
dossier sont mauvais. Vous devez vous assurer que l'utilisateur apache dispose des autorisations nécessaires pour créer un répertoire.Vous êtes en mesure de créer des répertoires dans
/var/www/
qu'il aura différentes autorisations.Vérifier le nom de l'utilisateur que le processus httpd est en cours d'exécution au fur et à
chown -R user:group /var/www/publish
pour que l'utilisateur/groupe. Sur debian, il semble que www-data/www-data, vous devez exécuter la commande suivantechown -R www-data:www-data /var/www/publish
.Mis à jour pour refléter des informations supplémentaires
"Vérifiez le nom de l'utilisateur que le processus httpd est en cours d'exécution" - comment?
dans la défense de Chris ici, il a répondu à votre question correctement. Cependant l'enseignement de base sysadmin compétences est au-delà de la portée de ce que vous avez demandé.
Excusez-moi pour cela, mais il semble qu'il est inévitable pour lui demander puisque c'est presque la réponse à la question.
OriginalL'auteur ChrisBint
lors de l'utilisation de mkdir() de PHP, il est exécuté avec l'utilisateur apache (www-data sur ubuntu), vous pouvez définir les mêmes droits sur publier dans /var/www en utilisant chown
sur ubuntu :
Ce qui concerne
mimiz
OriginalL'auteur mimiz
Réparer les autorisations pour le dossier de publication (détenue par la racine!). Un insécurité façon:
chmod 777 /var/www/publish
Il est préférable d'exécuter suphp et de changer le propriétaire du dossier de publier à votre utilisateur php (+w permission).
OriginalL'auteur ADev