The stream or file "/home/nick/projects/Symfony/app/logs/dev.log" could not
be opened: failed to open stream: Permission denied
我在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
答案 0 :(得分: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
或使用官方文档中描述的任何其他选项。
如果这不起作用,请粘贴我们的命令结果:
$ ls -al app/logs
答案 1 :(得分:1)
在我的情况下,我使用的CentOS 7和我通过组解决了它的 SELINUX =停用强>如下。
- sudo nano /etc/selinux/config
- Edit the file by set SELINUX=disabled
- Restart again then it worked !
我测试和尝试了许多方法包括输入chmod,chwon,setfacl的等,但直到我试图上述溶液不能解决问题,它的工作!
答案 2 :(得分:0)
你应该看看这个http://symfony.com/doc/current/book/installation.html#configuration-and-setup。
<强> UPD 强>
有时使用ACL的解决方案不起作用,在这种情况下请尝试第四个选项4. Use the same user for the CLI and the web server
答案 3 :(得分:0)
使用以sudo开头的命令。当我尝试运行服务器时,我也收到此错误。然后我使用了'sudo',错误消失了。
$ sudo php bin/console server:run