fopen() échoue to open stream: permission denied, pourtant, l'autorisation doit être valide
Donc, j'ai cette erreur:
Warning: fopen(/path/to/test-in.txt) [function.fopen]: failed to open stream: Permission denied
Effectuer ls -l
dans le répertoire où test-in.txt
est produit la sortie suivante:
-rw-r--r-- 1 $USER $USER 1921 Sep 6 20:09 test-in.txt
-rw-r--r-- 1 $USER $USER 0 Sep 6 20:08 test-out.txt
Afin d'obtenir au-delà de cela, j'ai décidé d'effectuer les opérations suivantes:
chgrp -R www-data /path/to/php/webroot
Et puis n':
chmod g+rw /path/to/php/webroot
Encore, je reçois toujours ce message d'erreur quand je lance mon script php5 pour ouvrir le fichier. Pourquoi est-ce arrivé? J'ai essayé ce à l'aide de la LAMPE ainsi que cherokee par CGI, de sorte qu'il ne peut pas être présent.
Est-il une solution?
Modifier
Je vais aussi ajouter que je suis juste à se développer via localhost droit maintenant.
Mise à jour - PHP fopen()
ligne
$fullpath = $this->fileRoot . $this->fileInData['fileName'];
$file_ptr = fopen( $fullpath, 'r+' );
Je dois aussi mentionner que je voudrais rester avec Cherokee, si possible. Quel est cet accord sur la définition des autorisations de fichier pour Apache/Cherokee?
il s'exécute en tant que mon utilisateur. Comme pour le deuxième, je peux
cat
le fichier texte sans erreurs, si cela aide.Êtes-vous sûr - le port 80 est un port privilégié et je doute que vous puissiez l'ouvrir. S'il vous plaît ajouter la ligne PHP ainsi
Pouvez-vous s'il vous plaît écrivez l'autorisation sur CHAQUE répertoire sur le VRAI chemin d'accès au fichier?
Il suffit de changer la permission. En hôte linux clic droit sur le fichier et cliquez sur modifier les autorisations. Puis faire toutes les autorisations activer.
OriginalL'auteur zeboidlund | 2012-09-07
Vous devez vous connecter pour publier un commentaire.
Vérifier si l'utilisateur que PHP s'exécute sous ont "X" de l'autorisation sur chaque répertoire du chemin d'accès au fichier.
Il en aurez besoin pour accéder au fichier
Si votre fichier est:
/path/to/test-in.txt
Vous devriez avoir X autorisation sur:
/path
/path/to
et l'autorisation de lecture sur
/path/to/test-in.txt
chgrp -R <group> </path/to/dir>
n'est pas aussi complet que je le pensais...OriginalL'auteur Izack
Une autre raison de cette erreur peut être que le répertoire de fichier n'existe pas.
Je viens d'ajouter du code php avant fopen:
Ce m'aider.
OriginalL'auteur onebraveman