2014-11-24 90 views
1
The stream or file "/home/nick/projects/Symfony/app/logs/dev.log" could not 
be opened: failed to open stream: Permission denied 

我得到它在symfony。 我知道我可以去应用程序/日志并删除dev.log,但这种情况经常发生,并且很恼人地一次又一次地删除它。异常处理的应用程序/日志/ dev.log

有没有什么办法可以让它消失? LE:我想,我得到了答复。 我运行前缀为sudo的命令。

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

[email protected]:~/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 

回答

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 
+0

我只是说'LS -al应用程序/ logs'的粘贴。谢谢! – crixi 2014-11-24 12:33:01

+0

@crixi:那好像没问题。同时检查日志目录。它必须具有权限drwxrwxr-x + – repincln 2014-11-24 12:50:32

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

+0

这是正确的,但拥有所有权限777并不是一个好习惯。 – repincln 2014-11-24 11:55:52

+0

你是对的,这是最后一件尝试,但是(只在开发模式下) – smarber 2014-11-24 12:04:14

+0

我已经做了这些设置,我他们现在再次做到了。问题仍然存在。 – crixi 2014-11-24 12:32:10

相关问题