web-dev-qa-db-ja.com

/ usr / local / bin /のcomposerで許可が拒否されました

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.iniでは、open_basedirは次のようになります。

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

Sudo composer self-updateも試しましたが、うまくいきませんでした。おそらく正しい方法ではありません。 (?)。この作品を作るために他に何ができますか?

16
haheute

現在、Arch Linuxにはcomposerのパッケージがあります。

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はデフォルトでこの変更を行います

16
Raaghu

フォルダーのルートファイルに書き込むコマンドには、Sudoコマンドを使用します。それは私のために働いた。

sudo「コマンド」を使用します

16
Mohammad Quadri

ディレクトリー内のファイルだけでなく、/ usr/local/bin /ディレクトリーの許可を確認する必要があります。プロセスは、ファイルとディレクトリの両方に書き込みを行う必要があり、両方を許可する必要があります。

それとは別に、一般的なヒント:すべてを常に777に設定する必要はありません。その理由はなく、システムが脆弱になります。

最後のコメントで投稿した行によると、ディレクトリは現在書き込み可能ですのみ rootユーザー自身に対して。それはあなたが得るエラーを説明するでしょう。 not自分のユーザーアカウントを所有者にする必要があります。Linuxシステムはマルチユーザー環境です。代わりに、これらのアプローチの1つについて考えてください。

  • composerを実行するためのアカウントをグループルートに追加し(ユーザーアカウントは複数のグループに属することができます)、ディレクトリグループを書き込み可能にします
  • ディレクトリのグループ所有権をアカウントがメンバーであるグループに変更し、ディレクトリグループを書き込み可能にします
  • Sudoユーティリティを使用して、composerユーティリティをインストールおよび更新します。

最後のオプションは、通常選択され、優先されるオプションです。アクセス許可はそのまま(保守的)に残され、インストールやアップグレードなどのシステムメンテナンスジョブに対してのみ昇格された特権を使用します。

13
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
8
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