2009-09-17 10 views
1

Salut J'essaye de résoudre pourquoi je ne peux pas obtenir des dossiers à télécharger sur ma machine de CentOS fonctionnant sur EC2 et pense qu'il peut être un problème de permissions (comme je l'ai montré des questions précédentes). Comment vérifier les privilèges de mon installation PHP pour l'écriture de fichiers. Le répertoire dans lequel je veux écrire des fichiers a été créé dans le même dossier que les scripts PHP qui essaient d'écrire les fichiers et les droits pour ce dossier sont rwxr-xr-x. Le propriétaire du dossier est root. Le propriétaire des fichiers PHP essayant d'écrire les fichiers téléchargés est également root.De quel utilisateur est PHP sur ma machine Linux CentOS? racine?

Lorsque le fichier PHP tente d'écrire les données ByteArray qu'il est envoyé je reçois le message d'erreur suivant - file_put_contents failed to open stream: Aucun fichier ou répertoire ...

Comment dois-je référencer le répertoire dans lequel je veux enregistrer le fichier - absolu ou relatif? Que fais-je d'autre mal?

acclamations

+0

c'était un problème de permissions, je devais changer le groupe et définir des autorisations à l'aide - chgrp apache/var/www/html/uploads chmod 775/var/www/html/uploads/ – undefined

Répondre

2

En supposant par PHP que vous voulez dire processus serveur web et en supposant que vous utilisez par défaut apache et n'avez pas changé ses paramètres par défaut, je pense que ce soit apache utilisateur pour CentOS.

+0

Oui, c'est le nom d'utilisateur apache pour centOS – undefined

+0

et «aucun fichier ou répertoire» signifie évidemment l'absence du répertoire de destination. –

2

Si PHP est en cours d'exécution à partir du serveur Web, il dépend de la configuration du serveur Web.

Le serveur Web peut supprimer des privilèges à un utilisateur spécifique (User directive d'Apache) ou l'exécuter en tant qu'utilisateur propriétaire en utilisant suexec (ou quelque chose de similaire). Notez que suexec ne vous permet pas d'exécuter des scripts en tant que root et Apache vous avertit de la définition de la directive User à root; cela signifie que tout script exécuté à partir d'Apache fonctionnera en tant que root, ce qui est assez dangereux.

2

Utilisation:

<?php 
$user = posix_getpwuid(posix_geteuid()); 

var_dump($user); 
?> 

Pour obtenir les détails de l'utilisateur.

En supposant que vous ayez un accès root, une fois que vous l'avez obtenu, localisez tous les fichiers afin qu'ils soient le même utilisateur que le propriétaire du processus PHP.

par exemple:

chown -R username /path/to/directory 
Questions connexes