异常处理app/logs/dev.log

cri*_*ixi 3 symfony

The stream or file "/home/nick/projects/Symfony/app/logs/dev.log" could not  
be opened: failed to open stream: Permission denied  
Run Code Online (Sandbox Code Playgroud)

我在symfony中得到它.我知道我可以去app/logs并删除dev.log但这种情况经常发生,并且一次又一次地删除它很烦人.

有没有办法让它消失?

LE:我想,我得到了答复.我运行带有前缀的命令sudo.

例如:sudo php app/console generate:bundle --namespace=Acme/StoreBundle将像魅力一样工作.

nick@ptb:~/projects/Symfony$ ls -al app/logs
total 76
drwxrwxrwx+ 2 nick     nick      4096 nov 24 15:16 .
drwxr-xr-x  6 nick     nick      4096 nov 24 15:28 ..
-rw-rw-r--+ 1 www-data www-data 59583 nov 24 16:25 dev.log
-rw-rw-r--+ 1 nick     nick         0 oct  6 15:55 .gitkeep
Run Code Online (Sandbox Code Playgroud)

rep*_*cln 5

我认为您创建目录app/logs为sudo(root),因此symfony没有权限写入dev.log文件.手动删除目录应用程序/日志(以及所有内容),将其创建为普通用户并设置权限,如官方文档http://symfony.com/doc/current/book/installation.html中所述.

就像是:

$ sudo rm -rf app/logs
$ mkdir app/logs
$ HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
Run Code Online (Sandbox Code Playgroud)

或使用官方文档中描述的任何其他选项.

如果这不起作用,请粘贴我们的命令结果:

$ ls -al app/logs
Run Code Online (Sandbox Code Playgroud)