【问题标题】:What directories and permission does php composer require for `composer install`? [duplicate]`composer install` php composer 需要哪些目录和权限? [复制]
【发布时间】: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/ 和子目录设置了哪些权限?
  • 作曲家不需要任何特定类型的权限。它只需要能够写入vendorcomposer.lock。根据您运行的插件和应用程序类型,可能还有更多。但它不依赖于作曲家。恐怕这没有多大意义。
  • 对不起@Chris,但我不认为这是一个有用的质量保证。我理解你的困惑,但这个问题并不是特别合乎逻辑,并且取决于一个错误的前提。您在之前的运行中以 root 身份执行了 composer(也是 bad),这就是现在让您感到困惑的原因。 Composer 不应以 root 或您在答案中建议的 web-process 用户身份运行(如果设置 web 项目,可能不是这种情况)。
  • 我在发布答案时没有疑虑,但在这种情况下我会弃权。祝你好运!

标签: php composer-php file-permissions


【解决方案1】:

在我上面的特殊情况下,我需要:

/var/www/html/vendor
/var/www/html/public
/var/www/html/var/log/
/var/www/html/var/cache/

以上目录以www-data:www-data 拥有,具有766 权限。虽然可能700 权限会更安全。

【讨论】:

  • 766 意味着您系统上的每个用户都可以写入这些文件夹。这听起来不太好
  • 这是一个不好的建议。这些文件都不应该归www-data 所有。 也许 var/log,如果您在生产环境中将日志写入文件系统。但这是一个危险的答案,会推动不良做法。
  • 非常好的一点,但是至少通过上述方法,它成功地运行了composer install。不过我会添加一个通知。
  • “这些文件都不应该归www-data所有”。当然www-data 需要对vendorpublic 的读取权限,因为它正在从那里读取文件?也许混淆来自“作曲家用户”不需要这些权限 - 但这是一个单独的问题。如果以www-data 运行作曲家存在安全隐患,则应突出显示。
  • 当然www-data(或运行您的php进程的任何用户)应该能够读取这些目录。我从来没有说过别的。这仍然是一个危险的建议。
猜你喜欢
  • 2015-05-26
  • 2017-08-24
  • 2011-04-27
  • 1970-01-01
  • 2020-02-02
  • 2014-08-28
  • 2019-03-04
  • 2018-10-03
  • 2017-02-14
相关资源
最近更新 更多