전날 새 모듈을 업데이트했는데 정상적으로 작동했습니다. 이제을 실행 bin/magento setup:upgrade
하면 아래 예외가 발생합니다. pub
Magento 2 의 폴더에 대한 권한을 777 (또는 770)으로 설정하려고 시도했지만 작동하지 않습니다.
[예외]
'pub / static'디렉토리에 대한 쓰기 권한이 없습니다.
전날 새 모듈을 업데이트했는데 정상적으로 작동했습니다. 이제을 실행 bin/magento setup:upgrade
하면 아래 예외가 발생합니다. pub
Magento 2 의 폴더에 대한 권한을 777 (또는 770)으로 설정하려고 시도했지만 작동하지 않습니다.
[예외]
'pub / static'디렉토리에 대한 쓰기 권한이 없습니다.
답변:
TL; DR 자르기 pub/static
폴더.
나에게는 이전 설치가 있었는데 아마도 더 이상 존재하지 않는 일부 심볼릭 링크와 오래된 파일이 있었을 것입니다.
문제 checkInstallationFilePermissions
는 권한을 재귀 적으로 확인한다는 것입니다. 파일 및 폴더. 심볼릭 링크가 없어서 쓰기 가능하면 수표에서 false를 반환했습니다.
디버깅하는 방법 :
setup/src/Magento/Setup/Model/FilePermissions.php
방법의 143 행으로 이동 checkRecursiveDirectories
라인 추가 var_dump($subDirectory);var_dump($subDirectory->isWritable());
다시 실행 bin/magento setup:upgrade
이제 당신은 정말로 무엇이 잘못되었는지 알게 될 것이고 그것을 고칠 수 있습니다. 개인적으로의 모든 항목을 제거pub/static
하면 자동 생성 된 콘텐츠가되므로 걱정하지 않아도됩니다.
심볼릭 링크가 손상되어 개발 중에이 오류가 발생했습니다.
모드 의 원래 파일이 저장된 모듈의 디렉토리를 가리키는 기호 링크를 사용 하여 디렉토리 에 배치 된 파일을 모듈의 view/frontend/web
디렉토리 에 작성했습니다 .developer
pub/static
개발 중 어느 시점에서 모듈에서 파일을 제거했지만 pub/static
더 이상 존재하지 않는 파일을 가리키는 심볼릭 링크가 여전히 존재합니다. 파일 중 하나의 이름을 바꾼 경우에도 마찬가지입니다.
사이트가 production
모드에 있고 bin/magento setup:static-content:deploy
실행 된 경우 실제로 pub/static
심볼릭 링크를 만드는 대신 파일을 디렉터리에 복사합니다 .
이 깨진 심볼릭 링크를 찾기 위해 쉘에서 명령을 실행했습니다.
find -L . -type l
깨진 심볼릭 링크를 제거하면 문제가 해결되었습니다 (예 :) find -L . -type l -exec rm {} \;
.
Magento 루트 디렉토리 내에서 아래 명령을 실행하면 문제가 사라집니다.
$ rm -rf pub/static/*
$ php bin/magento setup:static-content:deploy
나를 위해 일했다.
.htaccess
파일도 삭제 됩니다. .htaccess
파일 이 필요 합니다.
공식 문서에 설명 된대로 권한을 설정해야합니다. http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
이것은 나의 해결 된 일시적이다. 에서 줄 744 및 466을 주석 처리합니다 <magento_dir>/setup/src/Magento/Setup/Model/Installer.php
.
이것은 라인 코드입니다.
$this->checkInstallationFilePermissions();
핵심 파일을 변경하지 않는 솔루션이 필요합니다.
이 폴더에는 http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html에 설명 된대로 올바른 권한이 있어야합니다.
pub / static 폴더의 내용을 제거하고 pub / static 폴더에 권한 770을 부여하면 메시지가 다시 표시되지 않습니다.
누군가 Windows OS 에서이 문제가있는 경우. 관리자 명령 프롬프트에서 명령을 실행하면 매력처럼 작동합니다. 이것이 누군가를 돕기를 바랍니다.
다음 세 가지 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"
magento2에서 pub / static 폴더를 제거하십시오.
rm -r pub/static
그런 다음 magento2의 정적 컨텐츠를 배치하십시오.
php bin/magento setup:static-content:deploy
이 프로세스를 사용하여 동일한 문제가 해결되었습니다.
rm -r pub/static/*
있으며 .htaccess 파일을 제거하지 않아야합니다.