<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>Comment résoudre le problème de l'utilisationfopenUne erreur d'autorisation s'est produite lors de l'ouverture d'un fichier?Ces étapes vous aideront à résoudre</h1>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<hr>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<p>Utilisé PHP de <code></span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>()Sous Linux System, utilisez LS -L pour afficher les autorisations de fichiers. Si l'utilisateur PHP exécute (généralement www-data , apache ou nginx ) n'a pas d'autorisations de lecture et d'écriture correspondantes, une erreur se produira. Vous pouvez donner des autorisations via la commande suivante:
chmod </span><span><span class="hljs-number">644</span></span><span> test.txt </span><span><span class="hljs-comment"># Seul le propriétaire du fichier peut écrire,Lisible par d'autres utilisateurs</span></span><span>
chmod </span><span><span class="hljs-number">666</span></span><span> test.txt </span><span><span class="hljs-comment"># Tous les utilisateurs peuvent lire et écrire(Pas très sûr,Utiliser avec prudence)</span></span><span>
Non seulement le fichier lui-même nécessite des autorisations, mais le répertoire doit également être accessible aux utilisateurs de PHP. Assurez-vous que le répertoire a au moins des autorisations d'exécution ( x ) aux utilisateurs exécutant PHP:
<span class="fun">chmod </span> <span> <span class = "hljs-number"> 755 </span> </span> <span> / </span> <span> <span class = "hljs-keyword"> var </span> </span> <span> / www / html / data</span>
Parfois, le problème n'est pas que les autorisations de fichier soient configurées de manière incorrecte, mais que vous ne savez pas qui utilise réellement l'utilisateur. Vous pouvez ajouter le code suivant au script PHP à afficher:
<span class="fun"></span> <span> <span class = "hljs-keyword"> echo </span> </span> <span> </span> <span> <span class = "hljs-title function_ invoke __"> get_current_user </span> </span> <span> ();</span>
Ajustez ensuite les autorisations du fichier ou du répertoire pour cet utilisateur.
Si votre serveur a SELINUX ou Apparmor activé, il peut empêcher les services Web d'accéder à certains chemins. Vous pouvez temporairement fermer SELINUX pour tester si le problème est causé par cela ou ajuster la politique de manière ciblée.
Certains fournisseurs d'hébergement restreignent l'accès PHP aux chemins à l'extérieur du répertoire utilisateur. Si vous essayez d'ouvrir un fichier dans le répertoire système, vous pouvez dire directement une erreur d'autorisation. Assurez-vous que le fichier est dans le répertoire sur lequel vous avez la permission d'opérer.
Lorsque vous rencontrez des erreurs d'autorisation fopen () , ne vous précipitez pas pour modifier la configuration PHP. Habituellement, vous pouvez rapidement localiser et résoudre le problème en vérifiant simplement un par un du point de vue de "est le chemin d'accès correct - autorisation de fichier - autorisation du répertoire - PHP utilisateur - Politique de sécurité". Le réglage d'autorisation raisonnable peut non seulement assurer le fonctionnement normal du programme, mais également éviter les risques de sécurité potentiels.
Étiquettes associées:
fopen