由于权限,每日日志无法写入

时间:2016-07-20 22:41:21

标签: php laravel laravel-5 laravel-5.2

我已将// Generated : 2 files merged into one file: Player.java public class Player { public static void main(String[] args) { System.out.println(new Cell(1,2).toString()); } // Class Cell merged in this file public class Cell { int x,y; public Cell(int x, int y) { this.x = x; this.y = y; } public String toString() { return "["+x+","+y+"]"; } } } 配置更改为使用每日错误日志,并且只保留其中的7个:

app.php

但是,根据apache的错误日志,这些日志文件中没有写入任何内容,因为它们无法写入:

  

PHP致命错误:未捕获的异常' UnexpectedValueException'使用消息'流或文件" /var/www/newshub/storage/logs/laravel-2016-07-18.log"无法打开:未能打开流:权限被拒绝'

我尝试递归更改/* |-------------------------------------------------------------------------- | Logging Configuration |-------------------------------------------------------------------------- | | Here you may configure the log settings for your application. Out of | the box, Laravel uses the Monolog PHP logging library. This gives | you a variety of powerful log handlers / formatters to utilize. | | Available Settings: "single", "daily", "syslog", "errorlog" | */ 'log' => env('APP_LOG', 'daily'), 'log_max_files' => 7, storage目录的写权限。这很有效,但是当第二天创建错误日志时,它就不再具有写入权限。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

cd /var/www/newshub/storage/
chmod -R 0777 logs

请使用ssh尝试这些命令

答案 1 :(得分:0)

您是否正在使用GIT更新服务器上的代码库? 我注意到,有时当我拉动时,某些目录的权限会丢失,logs目录中的权限也不会发生,但值得一看。

至于Laravel,这不完全是在框架而不是服务器配置问题上。

答案 2 :(得分:0)

我有完全一样的问题。文件每天创建,然后无法写入。问题出在文件的所有者。这应该是www-data,但是它是由另一个用户创建的。我运行命令

sudo chown -R ubuntu:www-data /storage 

,一切正常。

为解决此问题,我创建了一个crontab来每天运行以更改新创建文件的所有权。该文件在当天生成后立即运行。这是一个短期修复,但是正在研究如何长期获得此修复。

答案 3 :(得分:0)

根据您的操作系统,使用ubuntu或apache将所有者更改为递归存储文件夹。它可以正常工作,而不会出现任何其他问题。

示例: sudo chown -R apache:apache / var / www / html / storage(基于您当前的存储位置)