/ usr / local / bin /

时间:2015-06-20 16:37:42

标签: php linux permissions composer-php

我按照https://getcomposer.org/doc/00-intro.md#globally上的文档在arch linux上全局安装composer。当我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,但它不起作用,可能不是正确的方法。 (?)。我还能尝试做些什么呢?

11 个答案:

答案 0 :(得分:16)

如果您直接下载composer.phar

,可能就是这种情况

但不是通过运行php composer-setup.php

使用以下命令生成composer.phar可执行文件,然后再将其移至/usr/local/bin/composer或移动

sudo chmod 755 composer.phar

composer-setup.php将默认为我们进行此更改

答案 1 :(得分:15)

对写入文件夹根文件的任何命令使用sudo命令。它对我有用。

使用sudo“你的命令”

答案 2 :(得分:11)

您应该检查目录/ usr / local / bin /的权限,而不仅仅是文件中的文件。该进程必须将文件和目录都写入必须授予的目录中。

除此之外,一般提示:并不总是将所有内容都设置为777.没有理由这样做会使您的系统容易受到攻击。

根据您在上一条评论中发布的行,该目录目前只能为root用户本身写入 。这可以解释你得到的错误。您应该使您自己的用户帐户成为所有者,Linux系统是多用户环境。而是考虑其中一种方法:

  • 将要执行composer的帐户添加到组根(用户帐户可以属于多个组)并使目录组可写
  • 将目录的组所有权更改为该帐户所属的组,并使目录组可写
  • 使用sudo实用程序安装和更新composer实用程序

最后一个选项是通常选择和首选的选项。它保留了权限(保守),只使用提升权限进行安装和升级等系统维护工作。

答案 3 :(得分:7)

在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 :(得分:3)

即使在通过sudo mv composer.phar /usr/local/bin/composer移动文件后,我在尝试运行composer命令时收到权限错误。 sudo chmod 755 /usr/local/bin/composer为我修好了东西。

答案 5 :(得分:2)

确保作曲家已经在/usr/local/bin,然后执行以下操作

chmod 755 composer

如果权限被拒绝,请添加sudo

答案 6 :(得分:1)

现在,在linux linux中有一个适用于作曲家的包,对我有用:

sudo pacman -S composer

答案 7 :(得分:0)

这在Centos 7上完成了我的工作

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

答案 8 :(得分:0)

您可以将权限临时添加到您的工作用户,然后更新没有错误的作曲家,然后取回权限。

sudo chmod 777 /usr/bin/
composer self-update
sudo chmod 755 /usr/bin/

答案 9 :(得分:0)

对于那些使用共享服务器的人,这里是步骤。

让我们先下载 composer 文件。

  • cd ~
  • curl -sS https://getcomposer.org/installer | php

现在我们可以通过以下方式访问composer:

  • ~/composer.phar

假设您在根目录中有 /public_html,以下是使用最新作曲家的步骤。

  • cd public_html
  • ~/composer.phar update

将来,如果您想更新作曲家:

  • ~/composer.phar self-update

希望对您有所帮助。

答案 10 :(得分:-1)

如果权限被拒绝,您应该使用带有 sudo 的命令,例如:

sudo composer self-update