我的网站根文件夹 user:group 可以 运行 作曲家更新?

Which user:group for my website root folder to be able to run composer update?

我有一个 Pimcore 项目根文件夹,它由 www-data:www-data 递归拥有。

如果我使用 sudo composer update,一切正常,但许多文件将设置为 root 所有者,这可能会导致更多问题。

如果我使用 sudo -u www-data composer update,我会得到一个 RuntimeException

file_get_contents(/home/me/.composer/config.json): failed to open stream: Permission denied

如果我使用 sudo -u me composer update,在某些时候,我会得到另一个 RuntimeException:

  An error occurred when executing the "'cache:clear --no-warmup'" command:                                                                             
  Fatal error: Uncaught RuntimeException: Unable to write in the cache directory (/var/www/html/pimcore/skeleton/var/cache/dev)  

如果我将根文件夹的所有权更改为 me:www-data,则会出现 RuntimeException 错误,因为某些文件夹对于组 www-data 不可写,像这个文件夹 /var/www/html/pimcore/skeleton/var/cache/dev/twig 权限设置为 drwxr-xr-x.

我的根文件夹应该属于哪个 user:group 以及我应该如何 运行 composer update?

It's better if you do not run composer as root.

除此之外,运行 composer 使用哪个用户并不是特别重要。只要它有足够的权限来写入您的项目文件(通常只能写入 vendorbinvarpublic;尽管它可能需要写入不同的目录取决于项目类型。

由于您已经 运行 composer 为 root,似乎 /home/me/.composer/config.json 是在 root 所有权下创建的,这给您带来了额外的问题。只是 sudo chown 该文件,以便您自己的用户可以阅读。

设置项目,使所有文件都属于您的(非提升权限)用户,并且 after 运行ning install 修复权限为文档中推荐: