Maison > développement back-end > Problème PHP > Comment résoudre l'échec de l'autorisation d'écriture du fichier PHP file_put_contents : échec d'ouverture du flux : autorisation refusée

Comment résoudre l'échec de l'autorisation d'écriture du fichier PHP file_put_contents : échec d'ouverture du flux : autorisation refusée

步履不停
Libérer: 2023-02-23 06:34:02
original
10933 Les gens l'ont consulté

Comment résoudre léchec de lautorisation décriture du fichier PHP file_put_contents : échec douverture du flux : autorisation refusée

Problème

La méthode file_put_contents est utilisée dans la méthode d'écriture du journal Aujourd'hui, lors de l'exécution de la méthode de rappel pour écrire le journal, elle indique qu'il n'y a pas d'autorisation d'écriture. au fichier et un message d'erreur

file_put_contents : échec d'ouverture du flux : autorisation refusée (Tutoriel vidéo PHP)

Processus de solution

Vérifiez les autorisations du dossier de journal car il est généré quotidiennement. Il existe une tâche planifiée qui est exécutée régulièrement. L'utilisateur d'exécution est root, donc l'utilisateur et le groupe d'utilisateurs pour générer le dossier sont tous deux root. dans la méthode de rappel est www, et la méthode d'écriture

 if(!is_dir($dir)){
        mkdir($dir,0777,true);
    }
Copier après la connexion

Si le répertoire n'existe pas, créez le répertoire, mais définissez les autorisations 777 lors de la création du dossier dans la fonction mkdir de PHP. En fait, le fichier créé l'a toujours. 755 autorisations. Dans le système Linux, il existe une autorisation par défaut lors de la création de fichiers/dossiers. Cette autorisation est affectée par le paramètre umask. Dans le fichier de configuration /etc/bashrc, nous pouvons trouver la configuration suivante :

if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002else
        umask 022fi
Copier après la connexion

UMask par défaut. dans le système Linux, c'est 022. Après avoir fonctionné avec notre 777 &, il devient 755. C'est la raison. Les paramètres ici affectent directement les paramètres d'autorisation par défaut du système Linux, pas seulement un problème PHP. Il n’est donc pas recommandé de le modifier directement pour changer 022 en 000.

Solution finale

Créez d'abord le répertoire, puis utilisez chmod pour modifier les autorisations en 777

mkdir('test', 0777);
chmod('test', 0777);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal