当我运行"作曲家更新"时,出现此错误:
Writing lock file
Generating autoload files
[ErrorException]
chmod(): Operation not permitted
*它适用于sudo,但是我必须重置所有者和权限,这真的很烦人...
**我还尝试将 ~/.composer 的所有者重置为 www-data 与 777,没有效果。
我正在使用 Ubuntu 16.04 LTS + Apache/2.4.18 & php7.0.26
知道吗?
只有当文件的所有者与运行composer update
命令的所有者相同时,chmod
才能在没有sudo
的情况下工作。
问题是错误消息没有告诉您它正在尝试chmod
哪个文件。
这取决于项目。
以详细模式运行命令将为您提供更多详细信息:
composer update -v
就我而言,它给了我一个堆栈跟踪,显示哪个文件名为chmod()
,以及行号。
但是,它没有给我传递给chmod()
的文件的路径。
我不得不在调用chmod()
之前添加一个简单的echo
(之后不要忘记删除它)。
知道哪个文件/文件夹负责错误消息后,请使用chown
更改其所有者。
在我的情况下(Magento 2.3),罪魁祸首是bin/magento
文件,该文件需要由运行composer
命令的用户拥有。