sourcecode

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

copyscript 2022. 9. 15. 22:49
반응형

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

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

$ 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>]...

사용자로 로그인하고 있습니다.kramer65홈 폴더에 쓸 수 없는 이유를 알 수 없습니다.에 대한 나의 정상적인 반응permission denied사용하는 것이다sudo하지만 작곡가는 항상 이렇게 말합니다.

Composer를 루트/슈퍼 사용자로 실행하지 마십시오!상세한 것에 대하여는, https://getcomposer.org/root 를 참조해 주세요.

이 문제를 어떻게 해결할 수 있을까요?

larabel/lumen을 설치하는 데 문제가 있었습니다.

이 문제는 다음 명령으로 해결할 수 있습니다.

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

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

sudo chown -R user ~/.composer(와 함께)user현재 사용자의 경우,kramer65)

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

또한 현재 디렉토리에서 .composer 파일을 삭제해야 터미널 창을 열고 다음 명령을 입력할 수도 있습니다.

sudo rm -rf .composer

저는 Ubuntu 18.04에서.나는 속으로 갈고 닦아야 했다.~/.config/composer/

예.

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

그러면 글로벌명령어가 동작합니다.

저 같은 경우,~/.composer.
그래서 라라벨 앱 루트 폴더 안에 있어서sudo chown -R $USER composer.lock도움이 됐어요.

저도 이 문제에 직면했지만, 제 경우 잘못된 디렉토리에 있었습니다.작업 중인 디렉토리를 확인합니다.

저 같은 경우에는.composer루트 소유였기 때문에sudo rm -fr .composer글로벌한 요구가 통했습니다.

주의하세요!무엇을 하고 있는지 확실하지 않으면 이 명령을 사용하지 않습니다.

제 경우, 여기 있는 다른 답변에 표시된 모든 위치에서 모든 권한이 올바르지만 여전히 이 오류가 발생하고 있습니다.

루트가 소유하고 있는 벤더 디렉토리가 몇 개 있음이 판명되었습니다.작곡가 쓴다composer.lock파일을 도처에 저장해 둘 수 있습니다.

그래서-모든 소유권이 사용자로 전환했다는laravel 돛 컨테이너-구체적으로 된 것은 내 사건의 해결.sail이 프로젝트에:

그 입력하세요sail루트로서 컨테이너:

vendor/bin/sail root-shell

프로젝트의 모든 파일에 대한 파일 소유권을 설정합니다.

chown -R sail:sail /var/www/html

벤더 디렉토리는 첫 번째 시도로만 실행할 수 있습니다.

chown -R sail:sail /var/www/html/vendor

그 소유권에 대해hand-rolled에서 진입한 후에도 틀렸다.docker-compose.yamlLaravel하다, IMO, 분리하는 것은 합리적인 방법에서 파일 소유권 및 사용 권한을 처리하기.root현재 응용 프로그램을 사용하거나 응용 프로그램 사용자로부터sail..

슈퍼 엣지 케이스일 수도 있지만 Travis CI를 사용하고 캐시를 활용하는 경우 모든 캐시를 지우고 재시도해야 할 수도 있습니다.

sudo 빌드에서 non sudo 빌드로 전환할 때 문제를 해결했습니다.

지만, 내 경우에는 나는 그래서 명령을 실행할 PowerShell를 사용하고 있어. 나는 명령에 먼저 여러 파일 차단 해제를 위해서 이 고쳤다 같은 예외 하고 있었다.동일한 예외가 발생했지만, 제 경우에는 PowerShell을 사용하여 명령을 실행하고 있기 때문에 여러 파일의 차단을 먼저 해제하라는 지시로 이 문제를 해결했습니다. PS C:\> dir C:\executable_file_Path\*PowerShell* | Unblock-File그리고 다음 사항을 패키지 다음명령을사용하여 패키지를 로드합니다를 로드하기 위해 사용한다.& 'C:\path_to_executable\php.exe' "c:\path_to_composer_.phar_file\composer.phar "require desired/package

저 같은 경우는저같은 경우에는을 사용했다.sudo mkdir projectFolder폴더를 만들.더를만만 만만만다다 이외의 userroot 를 했습니다.

저는 사용 로 변경했습니다.sudo chown mynonrootuser:mynonrootuser projectFolder잘 작동했어요

WSL Windows 10에서 사용해도 같은 에러가 발생.이 문제를 해결하기 위해 다음 명령을 사용했습니다.-

sudo chown -R $USER  /home/<username>/.config/composer

Windows 버전의 컴포저에서도 같은 문제가 발생했습니다.

C:\composer

이 명령어를 사용했을 때

C:\composer에는 aws/aws-sdk-php가 필요합니다.

그리고 간단하게 composer installed folder에 들어가서 다시 시도했다.

C:\composer> composer에는 aws/aws-sdk-php가 필요합니다.

패키지가 빠르게 설치되었습니다.

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

반응형