异常处理应用/日志/开发.log


The stream or file "/home/nick/projects/Symfony/app/logs/dev.log" could not  
be opened: failed to open stream: Permission denied  

我在交响乐中得到它。我知道我可以去应用程序/日志并删除 dev.log但这经常发生,一次又一次地删除它很烦人。

有没有办法让它消失?

LE:我想,我得到了回复。我运行以 sudo 为前缀的 comands .

例如: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

我认为您将目录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

就我而言,我使用了 CentOS 7,并通过设置 SELINUX=disabled 解决了它,如下所示。

 - sudo nano /etc/selinux/config
 - Edit the file by set SELINUX=disabled
 - Restart again then it worked !

测试并尝试了许多方法,包括chmod,chwon,setfacl等,但在我尝试上述解决方案之前它无法解决问题并且它有效!

你应该看看这个 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

使用以 sudo 为前缀的命令。当我尝试运行服务器时,我也遇到了此错误。然后我使用了"sudo",错误消失了。

$ sudo php bin/console server:run

相关内容

最新更新