cache:flush cache:clean 上的 Magento 2 错误 |之后需要给777设置权限
Magento 2 errors on cache:flush cache:clean | Need to set permission to 777 afterwards
每次我运行:
php bin/magento cache:flush
php bin/magento cache:clean
我在重新加载页面时收到以下消息:
An error has happened during application run. See exception log for
details.
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/
错误消失了。
我每次清理缓存时怎么会发生这种情况,应该如何解决trace/solve这个问题?
此类问题的根源是相同的:运行 网络服务器的用户不同于 运行 控制台命令的用户。
先决条件
您应该定义您的网络服务器的用户运行。
$ ls -la
这个命令可以 who creates 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
将网络服务器的用户添加到您的用户到同一组。
$ id
uid=1001(ygl) gid=1002(ygl) groups=1002(ygl),112(nopasswdlogin)
这一项将显示有关当前用户的信息。
$ sudo usermod -a -G www-data
此命令会将 www-data
添加到您的组名。
每次我运行:
php bin/magento cache:flush
php bin/magento cache:clean
我在重新加载页面时收到以下消息:
An error has happened during application run. See exception log for details.
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/
错误消失了。
我每次清理缓存时怎么会发生这种情况,应该如何解决trace/solve这个问题?
此类问题的根源是相同的:运行 网络服务器的用户不同于 运行 控制台命令的用户。
先决条件
您应该定义您的网络服务器的用户运行。
$ ls -la
这个命令可以 who creates 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
将网络服务器的用户添加到您的用户到同一组。
$ id
uid=1001(ygl) gid=1002(ygl) groups=1002(ygl),112(nopasswdlogin)
这一项将显示有关当前用户的信息。
$ sudo usermod -a -G www-data
此命令会将
www-data
添加到您的组名。