【发布时间】:2021-05-02 09:20:44
【问题描述】:
我正在尝试使用特定用户运行composer install。但是我遇到了权限错误:
$ composer install
Cannot create cache directory /var/www/.cache/composer/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /var/www/.cache/composer/files/, or directory is not writable. Proceeding without cache
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 118 installs, 0 updates, 0 removals
[RuntimeException]
/var/www/html/vendor does not exist and could not be created.
所以/var/www/.cache - 这意味着~/.cache?是否有明确的清单需要哪些目录和权限?
作曲家版本:
Composer version 2.0.8 2020-12-03 17:20:38
【问题讨论】:
-
在此之前您是否有机会以 root 身份运行 composer?可能是 root 用户创建了缓存文件夹,现在您作为非 root 用户没有此文件夹的权限
-
请分享更多细节 - 当前为
/var/www/和子目录设置了哪些权限? -
作曲家不需要任何特定类型的权限。它只需要能够写入
vendor和composer.lock。根据您运行的插件和应用程序类型,可能还有更多。但它不依赖于作曲家。恐怕这没有多大意义。 -
对不起@Chris,但我不认为这是一个有用的质量保证。我理解你的困惑,但这个问题并不是特别合乎逻辑,并且取决于一个错误的前提。您在之前的运行中以 root 身份执行了
composer(也是 bad),这就是现在让您感到困惑的原因。 Composer 不应以root或您在答案中建议的 web-process 用户身份运行(如果设置 web 项目,可能不是这种情况)。 -
我在发布答案时没有疑虑,但在这种情况下我会弃权。祝你好运!
标签: php composer-php file-permissions