Ответ 1
Теперь у меня есть пакет для композитора в arch linux, который работает для меня:
sudo pacman -S composer
Я выполнил документацию по 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
, но это не сработало, и возможно, это не так. (?). Что еще я мог бы попытаться сделать эту работу?
Теперь у меня есть пакет для композитора в arch linux, который работает для меня:
sudo pacman -S composer
это может быть так, если вы скачали composer.phar
напрямую,
но не запуском php composer-setup.php
сделать composer.phar
исполняемый файл со следующей командой перед перемещением на /usr/local/bin/composer
или после перемещения
sudo chmod 755 composer.phar
composer-setup.php сделает это изменение для нас по умолчанию
Используйте команду sudo для любой команды, которая записывает в корневые файлы папки. Это сработало для меня.
используйте sudo "ваша команда"
Вы должны проверить разрешения каталога /usr/local/bin/, а не только файла внутри. Процесс должен записывать как файл, так и в каталог, который должен быть предоставлен.
Кроме того, общий намек: не всегда устанавливайте все на 777. Для этого нет причин, и это делает вашу систему уязвимой.
В соответствии с линией, опубликованной в последнем комментарии, каталог в настоящее время можно записать только для самого пользователя root. Это объясняет полученную вами ошибку. Вы не должны создавать собственную учетную запись владельца, системы Linux - это многопользовательские среды. Вместо этого подумайте об одном из этих подходов:
composer
для корня группы (учетная запись пользователя может принадлежать нескольким группам) и сделать группу каталогов доступной для записиsudo
для установки и обновления утилиты composer
Последний вариант - типично выбранный и предпочтительный. Он оставляет разрешения такими, какие они есть (консервативны), и использует только повышенные привилегии для заданий на обслуживание системы, таких как установка и обновление.
Даже после перемещения файла через 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
Это работало для меня на Centos 7
chown -R apache:apache path/to/composer
chmod 755 path/to/composer
Вы можете временно добавить права своему рабочему пользователю, затем обновить композитор без ошибок и затем вернуть права.
sudo chmod 777 /usr/bin/
composer self-update
sudo chmod 755 /usr/bin/