【发布时间】:2017-05-03 21:37:34
【问题描述】:
我正在尝试将Prestissimo 安装到 Ubuntu 16.04 服务器,但这会导致错误:
$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer
[ErrorException]
file_put_contents(./composer.json): failed to open stream: Permission denied
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...
我以用户kramer65 登录,所以我不知道为什么它不能写入我的主文件夹。我对permission denied 的正常反应是使用sudo,但作曲家总是说:
不要以 root/超级用户身份运行 Composer!详情见https://getcomposer.org/root
知道如何解决这个问题吗?
【问题讨论】:
-
可能很明显,但必须问...您的
composer.json的当前权限是什么? -
@GentlemanMax - 还没有
~/.composer/composer.json文件。 -
那么
~/.composer/文件夹的权限是什么?kramer65似乎无权写,chmod可能有用。 -
@AnthonyB - 是的,我现在看到
~/.composer/归root所有。但我刚刚检查了一些其他系统,并在一个全新的 Ubuntu 16.04 VM 上安装了 composer,它始终归root所有。我当然可以chmod或chown它,但是更改此默认行为是个好主意吗? -
不完全相关,但我不会在生产服务器上安装 Prestissimo。它与较新版本的 Composer 的兼容性可能需要您可能不想在生产中处理的更新。
标签: php linux laravel composer-php sudo