作为“根”用户,我安装了我的 Composer curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin -- --filename=composer
默认情况下在/root/.composer 中创建供应商目录、缓存等。我想以 root 身份安装一些全局包,让其他用户使用这些包。例如
> whoami
root
> composer global require hirak/prestissimo (It makes packages download in parallel)
> su www-data
> cd /var/www/drupal
> composer install
预期行为:它应该在全局安装 hirak/prestissimo 时并行下载包,但事实并非如此。因为当我安装那个包时它在/root/.composer/vendor 里面并且在切换到 www-data 之后它无法读/写/root/.composer/vendor
最佳答案
我会使用绑定(bind)挂载,这里有一篇关于堆栈交换的帖子,比我能做到的更详细地介绍了它:
https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount
我之前用它来摆脱 CHROOT 限制,例如 C-Panel 用户被限制在 /home/user
上,所以他们不能访问上面的任何内容。使用绑定(bind)安装,您可以将上面的文件夹链接到其 Jail 中的文件夹。
关于php - 以某种方式安装 Composer ,以便其他用户也可以使用其全局供应商目录、缓存等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882505/