我安装了奏鸣曲管理包。 安装后我刷新我的页面有缓存问题然后我使用
rm -rf app/cache app/log
删除缓存。然后我也使用命令
创建控制器mkdir app/cache app/log
然后我得到了像这样的新问题
Runtime Exception : Unable to create the cache directory (/var/www/sonata/app/cache/dev). Please help .
答案 0 :(得分:50)
它看起来像文件/目录权限问题。该目录必须可由Web服务器写入。创建目录后,您应该使用
调整权限 $ chown -R www-data:www-data app/cache
和
$ chown -R www-data:www-data app/log
在命令行上。
这仅适用于Linux系统。用户和组取决于您的分发。在Debian和Ubuntu上,这应该是www-data,在CentOS上它是afaik apache。
另一个解决方案是不删除整个文件夹,而只删除其内容
$ rm -rf app/log/* app/cache/*
但请注意这个命令。
答案 1 :(得分:5)
此解决方案是正确的:https://stackoverflow.com/a/20128013/2400373
但是必须更改Symfony3
中的2个命令:
首先,你应该在项目的文件夹中:
$ sudo chown -R www-data:www-data var/cache
$ sudo chown -R www-data:www-data var/logs
删除缓存后:
$ sudo rm -rf var/cache/*
$ sudo rm -rf var/logs/*
此致
答案 2 :(得分:4)
对于centos:
chown -R apache:apache app/cache
如果您来Symfony帮助,如果删除整个app / logs文件夹,则可能必须执行此操作
chown -R apache:apache app/logs
答案 3 :(得分:3)
我解决了更改文件夹var/cache
和var/logs
的用户和组的问题,然后我清理了缓存:
sudo chown -R www-data:www-data var/logs
sudo chown -R www-data:www-data var/cache
sudo rm -rf var/logs/* var/cache/*
答案 4 :(得分:2)
更改CHMOD可能会有所帮助,但如果缓存在开发期间让您烦恼,您可以将其停用。 导航到您的应用配置文件(位于根目录的../app/config/config.yml中)。滚动到twig配置设置(在twig :)下并将缓存值(应该指向缓存目录)更改为false,如下所示:
twig:
cache: false
如果您没有看到任何缓存配置条目,只需添加上面的行。
答案 5 :(得分:1)
当我使用PHP symfony作为错误图片时,我发现了类似的问题。 我在运行命令后发现了它
php bin/console cache:clear
我通过删除文件夹 / app / var / cache
中的所有内容解决了该问题
答案 6 :(得分:0)
可能发生的是您尝试在apache / nginx下创建文件。默认情况下,apache或nginx将umask设置为0022.
来自:http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
解释八进制umask模式022和002
如前所述,如果未更改默认设置,则使用访问模式666和目录777创建文件。在此示例中:
普通用户使用的默认umask 002。使用此掩码,默认目录权限为775,默认文件权限为664。 root用户的默认umask为022,默认目录权限为755,默认文件权限为644。 对于目录,基本权限是(rwxrwxrwx)0777,对于文件,它们是0666(rw-rw-rw)。
您需要手动将umask设置为0002,并将其重置回之前的设置,然后才能创建目录。
答案 7 :(得分:0)
在 mac 计算机上,它将是:
$ sudo chown -R _www:_www var/cache
$ sudo chown -R _www:_www var/logs
如果以上都不适用于您,请在您的php文件中调用“phpinfo()”并找到“User / Group”值。这是授予权限的用户组。
答案 8 :(得分:0)
还要检查路径。就我而言,
return dirname(__DIR__) . '../../../../var/cache/
代替
return dirname(__DIR__) . '/../../../../var/cache/
(缺少/
)
答案 9 :(得分:0)
主要是权限问题。
我已经使用命令$ sudo chmod -R 777 <path/to/cache/directory>
您可以尝试:$ sudo chmod -R 777 /var/www/sonata/app/cache
答案 10 :(得分:0)
概括地说,每个人都可以使用这两个命令可以解决每个人的问题。
sudo chown -R $USER var/cache
sudo chown -R $USER var/logs
其他信息:$USER
自动替换您的用户名,以便任何人都可以使用。
答案 11 :(得分:0)
我在使用 phpmyadmin 5.1.0 时遇到了这个问题
解决方案是指定 tmp 目录的完整路径,而不是相对路径。
在配置文件 config.inc.php
上:
$cfg['TempDir'] = 'tmp'
我改成:
$cfg['TempDir'] = '/usr/share/phpmyadmin/tmp'
似乎问题与某些允许的路径“匹配”有关。 也许这个解决方案可以推广到其他使用 twig 的软件。