缓存上的Magento 2错误:flush cache:clean |之后需要设置777的权限

时间:2017-07-04 09:38:16

标签: magento2

每次我跑:

php bin/magento cache:flush
php bin/magento cache:clean

重新加载页面时收到以下消息:

  

应用程序运行期间发生错误。请参阅异常日志   的信息。

exception.log:

ain.CRITICAL: Exception: Warning: file_put_contents(/var/www/magento2/var/cache//mage-tags/mage---914_CONFIG_SCOPES): failed to open stream: Permission denied in /var/www/magento2/vendor/colinmollenhour/cache-backend-file/File.php on line 663 in /var/www/magento2/vendor/magento/framework/App/ErrorHandler.php:61

然后我跑:

sudo chmod -R 777 var/ pub/

错误消失了。

每次清理缓存时,怎么会发生这种情况?应该采取什么措施来追溯/解决这个问题?

1 个答案:

答案 0 :(得分:0)

此类问题的根源是相同的:运行Web服务器的用户与运行控制台命令的用户不同。

前提条件

您应该定义用户运行您的网络服务器。

$ ls -la

此命令可以由谁创建var/cache等等。

让我们决定在www-data用户下运行网络服务器。

解决方案1 ​​

$ sudo -H -u www-data __some_command_here_

此格式允许您在web-server用户下运行该命令。因此,应用程序将具有与服务器(用户www-data)相同的权限。 所以你命令php bin/magento cache:flush转换为

$ sudo -H -u www-data php bin/magento cache:flush

解决方案2

将您的用户的Web服务器用户添加到同一组。

$ id
uid=1001(ygl) gid=1002(ygl) groups=1002(ygl),112(nopasswdlogin)
  • 此会显示有关当前用户的信息。

    $ sudo usermod -a -G www-data

  • 此命令会将www-data添加到您的GroupName。