在“作曲家更新”上获取“chmod():不允许操作”

Pin*_*ini 2 permissions composer-php ubuntu-16.04

当我运行“作曲家更新”时,出现此错误:

Writing lock file
Generating autoload files


  [ErrorException]                  
  chmod(): Operation not permitted  
Run Code Online (Sandbox Code Playgroud)

*它与sudo一起工作得很好,但后来我必须重置所有者和权限,这真的很烦人......
**我还尝试将〜/ .composer的所有者重置为777的www-data,没有效果。
***我使用的是 Ubuntu 16.04 LTS + Apache/2.4.18 & php7.0.26


任何的想法?

use*_*662 5

chmodsudo当文件的所有者与运行composer update命令的所有者相同时,才可以工作。

问题是错误消息没有告诉您它正在尝试哪个文件chmod

这取决于项目。

以详细模式运行命令将为您提供更多详细信息:

composer update -v
Run Code Online (Sandbox Code Playgroud)

就我而言,它给了我一个堆栈跟踪,显示调用了哪个文件chmod(),以及行号。
但是,它没有给我传递给chmod().
我不得不在调用之前添加一个简单的echo权利chmod()(不要忘记之后将其删除)。

一旦您知道哪个文件/文件夹对错误消息负责,请使用chown.

在我的情况下(Magento 2.3),罪魁祸首是bin/magento文件,它需要由运行composer命令的用户拥有。