Apache+PHP autorisations d'écriture sur unix
Je suis en train de lancer PHP site avec apache sur fedora et j'ai un problème à propos de l'écriture des autorisations. Il ressemble à apache de ne pas disposer des autorisations d'écriture pour certains dossiers, mais je cano comprendre pourquoi.
J'ai vérifié httpd.conf et il a groupe: apache, utilisateur: apache.
J'ai ensuite fait:
chown -R apache:apache www et de définir les 777 autorisations pour les dossiers, mais il dit encore:
Avertissement: file_put_contents(/var/www/public/temp.txt) [function.file-put-contents]: failed to open stream: Permission denied in /var/www/public/newtest.php sur la ligne 8
S'il vous plaît conseils.
Mise à JOUR:
Btw, si je fais "php newtest.php" en ligne de commande, le fichier temp.txt est créé avec le groupe de la racine et la racine de l'utilisateur. Il a juste fais pas le travail à partir du navigateur.
temp.txt
?temp.txt est un nouveau fichier que je veux être créé, il n'existe pas encore
OriginalL'auteur Pavel Dubinin | 2010-02-14
Vous devez vous connecter pour publier un commentaire.
Il y a tellement de mauvaises choses ici.
Permet de commencer avec le fait que vous voulez vraiment garder httpd accessible en écriture aux fichiers bien loin de votre code - certainement dans un autre répertoire, de préférence en dehors de la racine du document tout à fait.
Et avez-vous vérifier par la suite que les autorisations étaient réellement? BTW voir également le point ci-dessus - si vous avez fait tout votre site web accessible en écriture par tout le monde, alors vous êtes juste des ennuis. Vous avez certainement chouldn pas changer à la FOIS le propriétaire ET les permissions.
Avez-vous SELinux est activé? (exécuter sestatus en tant que root). Si oui, alors vous devez soit désactiver ou d'apprendre à le configurer mais je vous recommande de vous familiariser avec l'ancienne autorisations d'abord, puis de désactiver SELinux.
C.
Ah non, en fait il a contribué à, juste eu l'ancien fichier avec les permissions root ici. merci beaucoup
OriginalL'auteur symcbean
faire un chmod 775 à newtest.php 😉
OriginalL'auteur Amad
ls-la /var/www/public
Juste pour vérifier 🙂
Bizarre. Êtes-vous sûr que temp.txt n'est pas déjà là? Aussi, ce qui se passera si vous essayez de "sudo -u apache echo test > /var/www/public/temp.txt" ?
oui, il n'était pas là. Quand je launced la commande que vous avez suggéré (sous root), il l'ont créé, mais quand j'essaie de mon script PHP de nouveau, il affiche toujours la même erreur, même si le fichier est là. Je suis certain qu'il a quelque chose à voir avec apache autorisations, mais vous ne savez pas quoi exactement..
Hmm. D'autres raisons pourraient être safe_mode ou open_basedir options activé dans php.ini ou dans la config d'apache ou dans .htaccess. Mais je pense qu'ils devraient produire légèrement différente des avertissements.
non.. ce n'est pas le cas. les deux sont hors tension.
OriginalL'auteur Qwerty
Je vous recommande de commutation apache mod_itk que mpm et l'exécution du particulier vhost avec les autorisations du propriétaire du répertoire racine du document et le contenu des scripts php.
Dans Apache, il existe au moins un serveur virtuel par défaut configuré en général. Vous voudrez probablement essayer de mettre tout le vhost propriétaire. Mais vous avez sans doute aussi voulez améliorer votre question, parce que mod_itk est exagéré dans seul vhost configurations et je n'aurais pas suggéré à l'époque. 😉
OriginalL'auteur hurikhan77