chmod():在localhost的laravel中上传图像时不允许执行操作。已启用GD库。测试环境为ubuntu 16.04和Windows 10(WSL)。
h4cxqtbf1#
我也遇到过同样的问题,我不知道为什么会这样,但是在我的例子中,运行composer dumpautoload为我修复了这个问题。
composer dumpautoload
iqih9akk2#
我正在Windows 10上使用Laravel 8、Docker Desktop 4.2.0(托管Ubuntu-20.04)和WSL2。我遇到了同样的错误后,我成功地清理了我的Docker容器中的Laravel缓存文件
sail artisan optimize:clear
在我的浏览器上重新提供应用程序并重新加载时,它报告了一些Filesystem错误。跟踪日志指向Laravel尝试执行chmod()命令并返回错误的行chmod():不允许操作我试着逃跑
chmod()
sail composer dumpautoload
进程运行了一段时间,然后在命令行上报告了相同的chmod(): Operation not permitted错误。这条命令拯救了我:
chmod(): Operation not permitted
docker run --rm \ -u "$(id -u):$(id -g)" \ -v $(pwd):/var/www/html \ -w /var/www/html \ composer dumpautoload
只需将它们复制并粘贴到命令行,在那里运行sail命令,然后按回车键。在最后一个composer命令完成后,您现在可以访问您的应用程序,而chmod()不会标记错误。
routes/web.php
到了通过表单上传文件的时候,chmod(): Operation not permitted又弹出了。这个问题可能是由于通过Composer安装多个依赖项无意中引起的目录结构/信息的变化。此外,Laravel应用程序的Docker容器和Docker映像由Laravel Sail管理。当您运行sail up时,Sail会设置应用程序的用户访问策略。它通过为Docker映像创建新用户并在应用程序启动时 * 将其关联到组中来完成此操作。您可以通过运行以下命令来确认:
sail up
sail artisan sail:publish
并检查应用根目录下生成的docker文件夹中的Docker文件。它们实际上是Sail用来为应用创建新容器的。
docker
如果你有任何接近我的设置,你遇到chmod(): Operation not permitted错误;简单地停止航行:
sail stop
等待所有容器停止运行,然后将其重新启动:
dldeef673#
验证Apache服务用户是否具有访问应用程序文件夹的权限。试试看:
chown -R www-data /var/www/laravel-project
只要www-data是运行服务apache2的用户
3wabscal4#
我在docker和sail上运行Laravel时遇到了同样的问题。(在windows上使用wsl)。对我来说,通过将此别名添加到我的linux cli(如果您使用windows,可以通过安装并运行wsl命令打开)来解决这个问题:
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
然后不管你用什么命令都要在前面加上帆就像这样
sail composer install
或
sail php artisan migrate
来源:Laravel文件
4条答案
按热度按时间h4cxqtbf1#
我也遇到过同样的问题,我不知道为什么会这样,但是在我的例子中,运行
composer dumpautoload
为我修复了这个问题。iqih9akk2#
我正在Windows 10上使用Laravel 8、Docker Desktop 4.2.0(托管Ubuntu-20.04)和WSL2。
我遇到了同样的错误后,我成功地清理了我的Docker容器中的Laravel缓存文件
在我的浏览器上重新提供应用程序并重新加载时,它报告了一些Filesystem错误。跟踪日志指向Laravel尝试执行
chmod()
命令并返回错误的行chmod():不允许操作
我试着逃跑
进程运行了一段时间,然后在命令行上报告了相同的
chmod(): Operation not permitted
错误。这条命令拯救了我:
只需将它们复制并粘贴到命令行,在那里运行sail命令,然后按回车键。在最后一个composer命令完成后,您现在可以访问您的应用程序,而
chmod()
不会标记错误。routes/web.php
。到了通过表单上传文件的时候,
chmod(): Operation not permitted
又弹出了。这个问题可能是由于通过Composer安装多个依赖项无意中引起的目录结构/信息的变化。此外,Laravel应用程序的Docker容器和Docker映像由Laravel Sail管理。当您运行
sail up
时,Sail会设置应用程序的用户访问策略。它通过为Docker映像创建新用户并在应用程序启动时 * 将其关联到组中来完成此操作。您可以通过运行以下命令来确认:并检查应用根目录下生成的
docker
文件夹中的Docker文件。它们实际上是Sail用来为应用创建新容器的。如果你有任何接近我的设置,你遇到
chmod(): Operation not permitted
错误;简单地停止航行:等待所有容器停止运行,然后将其重新启动:
dldeef673#
验证Apache服务用户是否具有访问应用程序文件夹的权限。
试试看:
只要www-data是运行服务apache2的用户
3wabscal4#
我在docker和sail上运行Laravel时遇到了同样的问题。(在windows上使用wsl)。对我来说,通过将此别名添加到我的linux cli(如果您使用windows,可以通过安装并运行wsl命令打开)来解决这个问题:
然后不管你用什么命令都要在前面加上帆就像这样
或
来源:Laravel文件