bin / magento setup : upgrade를 실행할 때 pub / static 디렉토리에 쓰기 권한이 없습니다.


19

전날 새 모듈을 업데이트했는데 정상적으로 작동했습니다. 이제을 실행 bin/magento setup:upgrade하면 아래 예외가 발생합니다. pubMagento 2 의 폴더에 대한 권한을 777 (또는 770)으로 설정하려고 시도했지만 작동하지 않습니다.

  [예외]
  'pub / static'디렉토리에 대한 쓰기 권한이 없습니다.


이 문제를 해결 했습니까? 그렇다면 pls가 솔루션을 게시하십시오.
— Reena Parekh

같은 문제가 있습니까?
— Thao Pham

예, 같은 문제에 직면하고 있습니다. 어떻게 해결 했습니까?
— Reena Parekh

핵심에서 일부 라인 코드를 주석 처리합니다. 나하고 싶니?
— Thao Pham

1
아래 게시물에 내 relsove를 게시했습니다. 시도해볼 수 있습니다
— Thao Pham

답변:


30

TL; DR 자르기 pub/static폴더.


나에게는 이전 설치가 있었는데 아마도 더 이상 존재하지 않는 일부 심볼릭 링크와 오래된 파일이 있었을 것입니다.

문제 checkInstallationFilePermissions는 권한을 재귀 적으로 확인한다는 것입니다. 파일 및 폴더. 심볼릭 링크가 없어서 쓰기 가능하면 수표에서 false를 반환했습니다.

디버깅하는 방법 :

  1. setup/src/Magento/Setup/Model/FilePermissions.php

  2. 방법의 143 행으로 이동 checkRecursiveDirectories

  3. 라인 추가 var_dump($subDirectory);var_dump($subDirectory->isWritable());

  4. 다시 실행 bin/magento setup:upgrade

이제 당신은 정말로 무엇이 잘못되었는지 알게 될 것이고 그것을 고칠 수 있습니다. 개인적으로의 모든 항목을 제거pub/static 하면 자동 생성 된 콘텐츠가되므로 걱정하지 않아도됩니다.


1
설정을 실행 한 후 pub / static을 완전히 제거했습니다. 업그레이드 pub / static 내의 유일한 폴더는 __requirejs 폴더입니다. CSS가 없어지고 스타일링이 전혀 없습니다 .... .. 내가하지 않았 으면
— 좋겠습니까

pub / static에서 모든 것을 어떻게 복원 할 수 있습니까?
— Lachezar Raychev

2
모든 난 정말이 프레임 워크 경멸하기 시작 :) ... 너무 잘 가고 있었다
— Lachezar Raychev

3
pub / static의 내용을 제거하는 경우 pub / static / .htaccess가 코드 기반의 일부 이므로 github.com/magento/magento2/tree/2.0/을 제거
— mttjohnson

퍼펙 토!
— Arvind07

11

심볼릭 링크가 손상되어 개발 중에이 오류가 발생했습니다.

모드 의 원래 파일이 저장된 모듈의 디렉토리를 가리키는 기호 링크를 사용 하여 디렉토리 에 배치 된 파일을 모듈의 view/frontend/web디렉토리 에 작성했습니다 .developerpub/static

개발 중 어느 시점에서 모듈에서 파일을 제거했지만 pub/static더 이상 존재하지 않는 파일을 가리키는 심볼릭 링크가 여전히 존재합니다. 파일 중 하나의 이름을 바꾼 경우에도 마찬가지입니다.

사이트가 production모드에 있고 bin/magento setup:static-content:deploy실행 된 경우 실제로 pub/static심볼릭 링크를 만드는 대신 파일을 디렉터리에 복사합니다 .

이 깨진 심볼릭 링크를 찾기 위해 쉘에서 명령을 실행했습니다.

find -L . -type l

깨진 심볼릭 링크를 제거하면 문제가 해결되었습니다 (예 :) find -L . -type l -exec rm {} \;.


mttjohnson 덕분에 이것은 내 문제에 대한 답변이었습니다!
— Joshua Soileau

4

Magento 루트 디렉토리 내에서 아래 명령을 실행하면 문제가 사라집니다.

$ rm -rf pub/static/*
$ php bin/magento setup:static-content:deploy

나를 위해 일했다.


.htaccess파일도 삭제 됩니다. .htaccess파일 이 필요 합니다.
— Adarsh ​​Khatri

2

공식 문서에 설명 된대로 권한을 설정해야합니다. http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html


1
실제 권한으로 인해 URL이 변경되는 경우가 있습니다.
— rob3000

다시 시도하지만 작동하지 않음
— Thao Pham

pub, pub / static 등의 서브 디렉토리로 재귀 적으로 수행하는 것을 잊지 마십시오.
— Mage2.PRO

소유권은 권한만큼 중요합니다. 위의 링크와 devdocs.magento.com/guides/v2.0/install-gde/prereq/…를 확인하십시오 . 두 명의 사용자가 있어야합니다. 로컬 사용자 및 웹 서버 사용자
— Steve Johnson

응용 프로그램 수준에서 권한을 설정하는 아이디어가 잘못되었으므로 사람들이 해당 섹션의 문서를 피해야한다고 생각합니다. github 이슈에 따라 다음 버전에서 업데이트 될 예정입니다.
— Claudiu Creanga

1

이것은 나의 해결 된 일시적이다. 에서 줄 744 및 466을 주석 처리합니다 <magento_dir>/setup/src/Magento/Setup/Model/Installer.php.

이것은 라인 코드입니다.

$this->checkInstallationFilePermissions();

핵심 파일을 변경하지 않는 솔루션이 필요합니다.


이 문제는 pub / static 디렉토리 아래의 심볼릭 링크 (아래 답변)로 인해 발생했을 수 있습니다. 손상된 symlink를 제거하면 코어 파일을 수정하지 않고 문제점을 해결할 수 있습니다.
— mttjohnson


@EnvisionEcommerce 링크가 작동하지 않습니다.
— MagePsycho

1

빈 / 마 젠토 권한 수정이 거부되었습니다.

chmod u + x bin / 마 젠토



0

명령 줄을 통해 Magento를 설치할 수없는 것과 같은 문제가있었습니다. 단순히 폴더를 생성하면 pub/static문제가 해결되었습니다.


0

누군가 Windows OS 에서이 문제가있는 경우. 관리자 명령 프롬프트에서 명령을 실행하면 매력처럼 작동합니다. 이것이 누군가를 돕기를 바랍니다.


0

필자의 경우 루트가 아닌 사용자 또는 권한이 제한된 사용자를 통해 upgrade 명령을 실행하면 오류가 발생했습니다. 충분한 권한이있는 사용자로 upgrade 명령을 실행하십시오.


0

여러 번 쓰기 권한을 확인했으며 모든 것이 좋았습니다.

  1. 나는이 행을 주석 처리하여 예외를 던졌습니다.
  2. 그런 다음 setup : upgrade를 실행했습니다.
  3. 예외로 행을 되돌림
  4. 문제가 더 이상 재현되지 않았습니다

0

다음 세 가지 IP 주소에 대해 다음 명령을 실행하십시오.

<Magento-Directory>php bin\magento maintenance:allow-ips 127.0.0.1, 
<Magento-Directory>php bin\magento maintenance:allow-ips "the ip of my localhost given by the NAT-Router" and
<Magento-Directory>php bin\magento maintenance:allow-ips  "the ip of the NAT-Router" 

0

이것을 사용하지 마십시오 :

rm -r pub/static

그것은 심지어 모든 파일을 제거합니다. htaccess

당신은 이것을 더 잘 사용할 수 있습니다 :

rm -rf pub/static/frontend
rm -rf pub/static/adminhtml

그 사용 후 :

php bin/magento setup:static-content:deploy en_US -f 

-1

magento2에서 pub / static 폴더를 제거하십시오.

rm -r pub/static

그런 다음 magento2의 정적 컨텐츠를 배치하십시오.

php bin/magento setup:static-content:deploy

이 프로세스를 사용하여 동일한 문제가 해결되었습니다.


4
중요한 .htaccess 파일이 포함되어 있기 때문에 전체 pub / static 디렉토리를 제거해서는 안되며 정적 컨텐츠 배포시 .htaccess 파일이 다시 작성되지 않습니다. 실행할 수 rm -r pub/static/*있으며 .htaccess 파일을 제거하지 않아야합니다.
— mttjohnson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.