Exception Laravel Le flux ou le fichier n'a pas pu être ouvert n'a pas réussi à ouvrir l'autorisation du flux refusé

Exception Laravel Le flux ou le fichier n'a pas pu être ouvert n'a pas réussi à ouvrir l'autorisation du flux refusé

Erreur:

Une de mes applications Laravel a commencé à afficher l'erreur suivante après avoir redémarré l'instance. Le message d'erreur est:

Le flux ou le fichier «/ var / www / html / stockage / journaux / laravel.Journal »n'a pas pu être ouvert: Échec de l'ouverture du flux: Permission refusée

Solution:

Ce message d'erreur indique que le processus PHP qui essaie d'écrire dans le fichier journal n'a pas suffisamment d'autorisations pour le faire. Il y a quelques choses que vous pouvez essayer de résoudre ce problème:

  1. Vérifiez la propriété et les autorisations du fichier journal et de ses répertoires parents. Le processus PHP doit avoir des autorisations de lecture et d'écriture sur le fichier et ses répertoires parents. Vous pouvez utiliser le 'ls -l' commande pour vérifier la propriété et les autorisations du fichier et Chmod et Chown pour les modifier si nécessaire.
    CHMOD -R 777 / var / www / html / stockage  
  2. Assurez-vous que le processus PHP est en cours d'exécution en tant qu'utilisateur correct. Si le processus PHP s'exécute en tant qu'utilisateur différent de celui du propriétaire du fichier journal, il peut ne pas avoir suffisamment d'autorisations pour écrire dans le fichier. Vous pouvez vérifier auprès de l'utilisateur que le processus PHP s'exécute en utilisant la commande ps.
  3. Vérifiez le journal des erreurs PHP pour plus d'informations. Le journal d'erreur PHP peut contenir des informations plus détaillées sur l'erreur, y compris la ligne de code exacte qui a provoqué le problème. L'emplacement du journal d'erreur PHP est généralement spécifié dans le PHP.Fichier de configuration INI.
  4. Assurez-vous que le fichier journal existe et est écrite par le processus PHP. Si le fichier journal n'existe pas, le processus PHP ne pourra pas lui écrire. Vous pouvez créer le fichier journal et définir les autorisations correctes à l'aide du 'touche' et 'chmod' commandes.
    Touch / var / www / html / stockage / journaux / laravel.enregistrer  Chmod 777 / var / www / html / stockage / journaux / laravel.enregistrer  
  5. Les utilisateurs de CentOS et d'autres utilisateurs du système Redhat peuvent avoir SELINUX activé. Vous pouvez définir le bon Selinux politique pour le 'stockage' Répertoire avec la commande suivante.
    chcon -r -t httpd_sys_rw_content_t / var / www / html / stockage  
  6. Les commandes suivantes vous aideront à créer tous les répertoires liés au stockage requis.
    mkdir -p / path / to / laravel / stockage / app, framework, journaux  mkdir -p / path / to / laravel / stockage / framework / cache, sessions, vues  

    Ensuite, le propriétaire du répertoire et attribuez les privilèges complets à tout le monde:

    Chmod -R 777 / Path / To / Laravel / Storage /  chown -r www-data: www-data / path / to / laravel / storage /  

    Assurez-vous de changer '/ Path / To / Laravel' avec votre répertoire d'application Laravel.

J'espère que ces suggestions aident. Faites-moi savoir si vous avez des questions ou si vous avez besoin d'aide supplémentaire.