Composer: file_put_contents (. / composer. json): не удалось открыть поток: отказано в разрешении


Composer: file_put_contents (. / composer. json): не удалось открыть поток: отказано в разрешении

18.12.2016 11:06:28 Просмотров 27 Источник

Я пытаюсь установить 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, но композитор тогда всегда говорит:

Не запускайте Composer от имени root/super user! Видишь https://getcomposer.org/root подробнее

Есть идеи, как я могу это решить?

У вопроса есть решение - Посмотреть?

Ответы - Composer: file_put_contents (. / composer. json): не удалось открыть поток: отказано в разрешении / Composer: file_put_contents(./composer.json): failed to open stream: Permission denied

Nabil Kadimi

25.01.2017 05:58:40

В моем случае, .composer был владельцем пользователя root, так что я сделал sudo rm -fr .composer и тогда моя глобальная требуют работала.

Будьте осторожны! Вы не хотите использовать эту команду, если не уверены, что делаете.

Является ответом!
Samuel Martins

30.01.2017 11:09:58

У меня была эта проблема, чтобы установить laravel/lumen.

Он может быть разрешен с помощью следующей команды:

$ sudo chown -R $USER ~/.composer/
Ken

05.06.2017 12:20:41

Чтобы решить эту проблему, вы должны открыть окно терминала и ввести следующую команду:

sudo chown -R user ~/.composer (при этом user является вашим текущим пользователем, в вашем случае kramer65)

После выполнения этой команды у вас должно быть разрешение на запуск команды composer global require.

Возможно, Вам также потребуется удалить файл. composer из текущего каталога, для этого откройте окно терминала и введите следующую команду:

sudo rm -rf .composer

Moak

24.01.2018 02:14:01

Это может быть супер крайний случай, но если вы используете Travis CI и используете преимущества кэширования, вы можете очистить весь кэш и повторить попытку.

Фиксированная моя проблема, когда я шел от суда для суда строит.

Yasin Okumuş

17.02.2018 02:10:03

Я тоже столкнулся с этой проблемой, но в моем случае я был в неправильном каталоге. Проверьте каталог, в котором вы работаете

Tarasovych

07.09.2018 11:33:40

В моем случае у меня нет проблем с ~/.composer.
Поэтому, находясь в корневой папке приложения Laravel, я сделал sudo chown -R $USER composer.lock, и это было полезно.

javierfmv

19.08.2020 07:07:58

Я получал такое же исключение, но в моем случае я использую PowerShell для выполнения команд Поэтому я исправил это с помощью инструкции сначала разблокировать несколько файлов. PS C:\> dir C:\executable_file_Path\*PowerShell* | Unblock-File , а затем используйте следующее для загрузки пакета & 'C:\path_to_executable\php.exe' "c:\path_to_composer_.phar_file\composer.phar "require desired/package

wp student

03.09.2020 10:41:07

В моем случае я использовал sudo mkdir projectFolder для создания папки. Он принадлежал пользователю root, и я вошел в систему с помощью пользователя non root.

Поэтому я изменил разрешение папки с помощью команды sudo chown mynonrootuser:mynonrootuser projectFolder, и тогда все сработало нормально.

Помочь в развитии проекта:
Закрыть X