web-dev-qa-db-fra.com

Impossible d'ouvrir "storage / logs / laravel-2019-11-22.log": impossible d'ouvrir le flux: autorisation refusée

J'ai eu l'erreur suivante en entrant mon site sur un serveur de production:

Impossible d'ouvrir le flux ou le fichier "/var/app/current/storage/logs/laravel-2019-11-22.log": impossible d'ouvrir le flux: autorisation refusée

J'ai essayé d'exécuter les commandes suivantes et j'ai obtenu des autorisations refusées dans le terminal:

php artisan cache:clear
php artisan config:clear
php artisan config:cache
php artisan optimize:clear

L'Iran chmod -R 775 storage/logs/ et composer dump-autoload et j'ai pu accéder à la page d'accueil de mon site sans aucune erreur. Après avoir surfé un peu plus sur le site, j'obtenais la même erreur dans divers domaines et pas dans d'autres:

Encore la même erreur

Impossible d'ouvrir le flux ou le fichier "/var/app/current/storage/logs/laravel-2019-11-22.log": impossible d'ouvrir le flux: autorisation refusée

J'ai supprimé les fichiers suivants et j'ai exécuté php artisan cahce:clear:

/bootstrap/cache/packages.php
/bootstrap/cache/services.php
/bootstrap/cache/config.php.php

Le seul autre conseil que j'ai vu est exécuté:

Sudo chmod -R 777 storage/*

Ce qui semble être une mauvaise idée sur un serveur de production, mais semble être une réponse surévaluée. Dois-je simplement donner des autorisations à mon directeur de stockage 777 et pourquoi? Y a-t-il une autre façon de résoudre ce problème?

Modifier:

J'essaie de faire cela comme indiqué ici:

// set current user as owner and the webserver user as the group
Sudo chown -R $USER:www-data storage
Sudo chown -R $USER:www-data bootstrap/cache
// set directory permission to be 775
chmod -R 775 storage
chmod -R 775 bootstrap/cache

mais quand je lance Sudo chown -R $USER:www-data storage J'obtiens cette erreur:

chown: groupe non valide: "mon nom d’utilisateur: www-data"

3
Kyle Corbin Hurst

si vous avez fait ce "stockage Sudo chmod -R 777" et toujours la même erreur, vous pouvez aller dans le starage/log et supprimer tous les fichiers .log manuellement.

j'ai eu le même problème alors j'ai essayé de cette façon. alors ça a marché. mais ce n'est pas une solution permanente. si cette méthode a fonctionné pour vous, vous pouvez utiliser cron job pour supprimer automatiquement tous les journaux.

0
iAmGroot