problème de permission php fopen

2

J'apprends php, et j'ai un problème en écrivant une page de téléchargement de fichier. Dans la docroot, j'ai index.php (la page qui appelle fopen) et un répertoire appelé "images", dans lequel je souhaite que le fichier temporaire soit déplacé. Cependant, fopen échoue avec "autorisation refusée" (vide / var / log / httpd / error_log). fopen est appelé pour demander une écriture.

J'ai parcouru le net et trouvé que le problème était avec les permissions sur le répertoire images. J'ai d'abord changé le propriétaire du groupe du répertoire en un groupe différent de root et ajouté 'apache' à ce groupe. le groupe a l'autorisation w sur le répertoire. (J'ai découvert que mon Apache fonctionnait comme utilisateur apache avec

# ps aux| grep httpd

Cela a échoué. (Aurait dû travailler, non?)

Encore une fois, j'ai repoussé les images / répertoires entières qui appartiendraient à 'apache'. en vain.

Et oui, j'ai redémarré le serveur après chacune des modifications ci-dessus.

Merci,

Yati

PS: Ma réputation ici ne me permet pas de répondre par moi-même dans les 8 heures, alors j'ai décidé de l'éditer ici. Avec l’aide d’Ignacio, la commande permettant de modifier le contexte SELinux du répertoire images est la suivante:

# chcon -R -h -t httpd_sys_rw_content_t ./images

à partir de docRoot.

Merci encore.

yati sagade
la source

Réponses:

2

SELinux empêche HTTPd d'écrire dans ce répertoire. Utilisation chcon changer le contexte du fichier de images/ à httpd_sys_rw_content_tet si cela le permet, utilisez semanage pour le rendre permanent.

Ignacio Vazquez-Abrams
la source
Salut. Merci beaucoup, mais httpd_sys_rw_content_t est signalé comme un contexte invalide par chcon.
yati sagade
Quelle distribution utilisez-vous?
Ignacio Vazquez-Abrams
fedora 15. des allusions?
yati sagade
C'est la valeur correcte pour F15. Vérifiez votre orthographe et assurez-vous que tous selinux-* les forfaits sont à jour.
Ignacio Vazquez-Abrams
Merci Ignacio de m'avoir orienté dans la bonne direction. Il semble que la commande chcon soit: # chcon -R -h -t httpd_sys_rw_content_t images Merci
yati sagade