it-roy-ru.com

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

Я следовал документации по https://getcomposer.org/doc/00-intro.md#globally , чтобы установить composer глобально в 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.iniopen_basedir выглядит так:

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

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

11
haheute

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

Sudo pacman -S composer
1
haheute

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

но не с помощью php composer-setup.php

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

Sudo chmod 755 composer.phar

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

14
Raaghu

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

используйте судо "твоя команда"

12
Mohammad Quadri

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

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

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

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

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

10
arkascha

На 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
4
Boss COTIGA

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

3
Charlie Stanard

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

chown -R Apache:apache path/to/composer
chmod 755 path/to/composer
0
wkipo

Вы можете временно добавить права своему рабочему пользователю, затем обновить composer без ошибок и затем вернуть права. 

Sudo chmod 777 /usr/bin/
composer self-update
Sudo chmod 755 /usr/bin/
0
Sergey Radist