每次我跑:
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/
错误消失了。
每次清理缓存时,怎么会发生这种情况?应该采取什么措施来追溯/解决这个问题?
答案 0 :(得分:0)
此类问题的根源是相同的:运行Web服务器的用户与运行控制台命令的用户不同。
您应该定义用户运行您的网络服务器。
$ ls -la
此命令可以由谁创建var/cache
等等。
让我们决定在www-data
用户下运行网络服务器。
$ 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
将您的用户的Web服务器用户添加到同一组。
$ id
uid=1001(ygl) gid=1002(ygl) groups=1002(ygl),112(nopasswdlogin)
此会显示有关当前用户的信息。
$ sudo usermod -a -G www-data
此命令会将www-data
添加到您的GroupName。