Laravel 根本原因所拥有的存储缓存文件夹无法清除缓存
Laravel Storage Cache folders owned by root causes fail in clearing cache
我在服务器(Ubuntu 18.04 LTS,apache2 网络服务器)上有一个 laravel 7 应用程序 运行。我的问题是,php artisan cache:clear
确实 return“无法清除缓存。确保您拥有适当的权限。”
我尝试了以下方法但没有成功:
chmod -R 775 storage
php artisan config:cache
- 手动删除“bootstrap/cache/services.php”+“bootstrap/cache/packages.php”+“bootstrap/cache/config.php”
在“storage/framework/cache/data”中新创建的缓存文件夹有时由用户 root 拥有,这似乎是问题所在。
如果我手动删除这些文件夹,它会一直有效,直到创建新的根文件夹。
使用 ps -aux
我看到 laravel 进程是来自用户 root 的 运行。我用 sudo -u myusername
更改了它,但这并没有改变行为。我在服务器重启时在 rc.local 脚本中启动 laravel 应用程序 (php artisan serve
)。
当前用户“myusername”在组 www-data 中。
问题应该是您的存储路径中没有文件夹。你应该
- storage/framework/sessions
- storage/framework/views
- storage/framework/cache
尝试创建空文件夹,应该可以。
您必须 运行 来自与您当前用户属于同一用户组的用户的网络服务器。默认情况下 rc.local
从 root
用户调用命令,这不是你需要的。
这样编辑您的rc.local
:
su user01 -c 'php /var/www/artisan serve'
其中 user01
是您当前的用户,/var/www/artisan
是您的 artisan 文件的完整路径。另外,也许您应该指定 php bin 文件的完整路径,例如 /usr/bin/php
或其他。
更多详情here
我在服务器(Ubuntu 18.04 LTS,apache2 网络服务器)上有一个 laravel 7 应用程序 运行。我的问题是,php artisan cache:clear
确实 return“无法清除缓存。确保您拥有适当的权限。”
我尝试了以下方法但没有成功:
chmod -R 775 storage
php artisan config:cache
- 手动删除“bootstrap/cache/services.php”+“bootstrap/cache/packages.php”+“bootstrap/cache/config.php”
在“storage/framework/cache/data”中新创建的缓存文件夹有时由用户 root 拥有,这似乎是问题所在。
如果我手动删除这些文件夹,它会一直有效,直到创建新的根文件夹。
使用 ps -aux
我看到 laravel 进程是来自用户 root 的 运行。我用 sudo -u myusername
更改了它,但这并没有改变行为。我在服务器重启时在 rc.local 脚本中启动 laravel 应用程序 (php artisan serve
)。
当前用户“myusername”在组 www-data 中。
问题应该是您的存储路径中没有文件夹。你应该
- storage/framework/sessions
- storage/framework/views
- storage/framework/cache
尝试创建空文件夹,应该可以。
您必须 运行 来自与您当前用户属于同一用户组的用户的网络服务器。默认情况下 rc.local
从 root
用户调用命令,这不是你需要的。
这样编辑您的rc.local
:
su user01 -c 'php /var/www/artisan serve'
其中 user01
是您当前的用户,/var/www/artisan
是您的 artisan 文件的完整路径。另外,也许您应该指定 php bin 文件的完整路径,例如 /usr/bin/php
或其他。
更多详情here