本番サーバーにサイトを入力すると、次のエラーが発生しました。
ストリームまたはファイル「/var/app/current/storage/logs/laravel-2019-11-22.log」を開けませんでした:ストリームを開けませんでした:権限が拒否されました
次のコマンドを実行してみましたが、ターミナルでPermisionsが拒否されました。
php artisan cache:clear
php artisan config:clear
php artisan config:cache
php artisan optimize:clear
chmod -R 775 storage/logs/
とcomposer dump-autoload
を実行しましたが、エラーなくサイトのホームページにアクセスできました。サイトをもう少しサーフィンした後、他の領域ではなく、さまざまな領域で同じエラーが発生しました。
再び同じエラー
ストリームまたはファイル「/var/app/current/storage/logs/laravel-2019-11-22.log」を開けませんでした:ストリームを開けませんでした:権限が拒否されました
次のファイルを削除してphp artisan cahce:clear
を実行しました:
/bootstrap/cache/packages.php
/bootstrap/cache/services.php
/bootstrap/cache/config.php.php
私が見た他の唯一のアドバイスは実行されます:
Sudo chmod -R 777 storage/*
これは本番サーバーでは悪い考えのように見えますが、正反対の答えのようです。ストレージディレクターに777のアクセス許可のみを付与する必要がありますか。その理由は何ですか。これを修正する別の方法はありますか?
編集:
私はここに述べられているようにこれをやろうとしています:
// 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
しかし、Sudo chown -R $USER:www-data storage
を実行すると、次のエラーが発生します。
chown:無効なグループ: ‘myusername:www-data’
この「Sudo chmod -R 777 storage」を実行しても同じエラーが発生する場合は、starage/logに移動して、すべての.logファイルを手動で削除できます。
同じ問題が発生したので、この方法を試しました。うまくいきました。しかし、その恒久的な解決策ではありません。この方法で問題が解決した場合は、cronジョブを使用してすべてのログを自動的に削除できます。