UFO ET IT

Composer : file_put_contents (./ composer.json) : 스트림을 열지 못했습니다 : 권한이 거부되었습니다.

ufoet 2020. 11. 22. 20:59
반응형

Composer : file_put_contents (./ composer.json) : 스트림을 열지 못했습니다 : 권한이 거부되었습니다.


Prestissimo 를 Ubuntu 16.04 서버 에 설치하려고하는데 오류가 발생합니다.

$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer


  [ErrorException]
  file_put_contents(./composer.json): failed to open stream: Permission denied


require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...

user로 로그인 kramer65했기 때문에 홈 폴더에 쓸 수없는 이유를 모르겠습니다. a에 대한 나의 정상적인 반응 은를 permission denied사용하는 sudo것이지만 작곡가는 항상 다음과 같이 말합니다.

Composer를 루트 / 슈퍼 유저로 실행하지 마십시오! 자세한 내용은 https://getcomposer.org/root 를 참조하십시오.

이 문제를 어떻게 해결할 수 있는지 아십니까?


laravel / lumen을 설치하는 데이 문제가 발생했습니다.

다음 명령으로 해결할 수 있습니다.

$ sudo chown -R $USER ~/.composer/

이 문제를 해결하려면 터미널 창을 열고 다음 명령을 입력해야합니다.

sudo chown -R user ~/.composer( user귀하의 경우 현재 사용자 인 경우 kramer65)

이 명령을 실행 한 후 composer global require 명령을 실행할 수있는 권한이 있어야합니다.

현재 디렉토리에서 .composer 파일을 제거해야 할 수도 있습니다. 이렇게하려면 터미널 창을 열고 다음 명령을 입력하십시오.

sudo rm -rf .composer


나는이 문제에 직면했지만 내 경우에는 잘못된 디렉토리에있었습니다. 작업중인 디렉토리를 확인하십시오.


제 경우에는 .composer루트가 소유했기 때문에 그렇게 sudo rm -fr .composer한 다음 글로벌 요구 사항이 작동했습니다.

경고 받다! 수행중인 작업이 확실하지 않은 경우 해당 명령을 사용하고 싶지 않습니다.


이것은 슈퍼 에지 경우 일 수 있지만 Travis CI를 사용하고 캐싱을 활용하는 경우 모든 캐시를 지우고 다시 시도하는 것이 좋습니다.

sudo에서 sudo가 아닌 빌드로 이동할 때의 문제를 수정했습니다.


제 경우에는 ~/.composer.
그래서 Laravel 앱 루트 폴더 안에 있었으므로 sudo chown -R $USER composer.lock도움이되었습니다.

참고 URL : https://stackoverflow.com/questions/41212362/composer-file-put-contents-composer-json-failed-to-open-stream-permission

반응형