разрешение отклонено для композитора в / usr / local / bin /

Я выполнил документацию на https://getcomposer.org/doc/00-intro.md#globally, чтобы установить композитор по всему миру в arch linux. Когда я делаю composer self-update , я получаю это сообщение:

  [ErrorException] rename(/home/hannes/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied 

Разрешения в /usr/local/bin/ (я изменил их на 777, но это не помогло):

 -rwxrwxrwx 1 hannes users 1104202 30. Mai 18:07 composer 

В моем домашнем каталоге я сделал это:

 sudo chmod -R 777 .composer/ 

В /etc/php/php.ini open_basedir выглядит так:

 open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/usr/local/bin/ 

Я также попробовал sudo composer self-update но это не сработало, и, возможно, это не так. (?). Что еще я мог бы попытаться сделать эту работу?

это может быть так, если вы загрузили composer.phar напрямую,

но не путем запуска php composer-setup.php

создайте исполняемый файл composer.phar со следующей командой перед перемещением в /usr/local/bin/composer или после перемещения

sudo chmod 755 composer.phar

composer-setup.php сделает это изменение для нас по умолчанию

Вы должны проверить разрешения каталога / usr / local / bin /, а не только файла внутри. Процесс должен записывать как файл, так и в каталог, который должен быть предоставлен.

Кроме того, общий намек: не всегда устанавливайте все на 777. Нет причин для этого, и это делает вашу систему уязвимой.

Согласно строке, опубликованной в последнем комментарии, каталог в настоящее время можно записать только для самого пользователя root. Это объясняет полученную вами ошибку. Вы не должны создавать собственную учетную запись владельца, системы Linux – это многопользовательские среды. Вместо этого подумайте об одном из этих подходов:

  • добавьте учетную запись, предназначенную для выполнения composer в корневой каталог группы (учетная запись пользователя может принадлежать нескольким группам) и сделать группу каталогов доступной для записи
  • измените принадлежность групп к каталогу группе, в которую входит учетная запись, и сделайте группу каталогов доступной для записи
  • используйте утилиту sudo для установки и обновления утилиты компоновщика

Последний вариант является типично выбранным и предпочтительным. Он оставляет разрешения такими, какие они есть (консервативны), и использует только повышенные привилегии для заданий на обслуживание системы, таких как установка и обновление.

Используйте команду sudo для любой команды, которая записывает в корневые файлы папки. Это сработало для меня.

используйте sudo “ваша команда”

Даже после перемещения файла через sudo mv composer.phar /usr/local/bin/composer я получал ошибку разрешения при попытке запустить команду composer . sudo chmod 755 /usr/local/bin/composer исправил для меня вещи.

На Ubuntu SRV 16.04

ПЕРВЫЙ

 sudo rm /usr/local/bin/composer 

А ТАКЖЕ

 cd ~/.cache/composer chmod 755 composer-temp.phar sudo mv composer-temp.phar /usr/local/bin/composer 

Теперь у меня есть пакет для композитора в arch linux, который работает для меня:

 sudo pacman -S composer 

Это сделало для меня работу на Centos 7

 chown -R apache:apache path/to/composer chmod 755 path/to/composer