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.