我遵循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
但它不工作,可能不是正确的方式。 (?)。 我还有什么可以尝试做这个工作?
您应该检查目录/ usr / local / bin /的权限,而不仅仅是其中的文件。 这个过程必须把文件和文件写入这两个都必须被授予的目录中。
除此之外,一个普遍的提示:并不总是把所有东西都设置为777.没有理由,这会使你的系统变得脆弱。
根据您在上次评论中发布的行,目录目前只能由root用户自己写入。 这将解释你得到的错误。 你不应该让你自己的用户帐户的所有者,Linux系统是多用户环境。 而是想想其中的一种方法:
composer
的帐户添加到组根(一个用户帐户可以属于几个组),并使目录组可写 sudo
实用程序安装和更新composer
实用程序 最后一个选项是通常选择的和首选的选项。 它保留了原有的权限(保守),只对安装和升级等系统维护作业使用提升权限。
将sudo命令用于写入文件夹根文件的任何命令。 它为我工作。
使用sudo“你的命令”
这可能是如果你已经直接下载了composer.phar
,
但不能运行php composer-setup.php
在移动到/usr/local/bin/composer
或移动之后,使用以下命令使composer.phar
可执行
sudo chmod 755 composer.phar
composer-setup.php会默认为我们做这个改变
现在,在arch linux中有一个作曲家软件包,它适用于我:
sudo pacman -S composer
即使在通过sudo mv composer.phar /usr/local/bin/composer
移动文件之后,在尝试运行composer
命令时出现许可错误。 sudo chmod 755 /usr/local/bin/composer
修复了我的东西。
这在Centos 7上完成了我的工作
chown -R apache:apache path/to/composer chmod 755 path/to/composer