마 젠토 업그레이드 후 오류


27

CLI에서이 명령을 실행 한 후 php bin/magento setup:upgrade

오류가 발생합니다-:

Fatal error: Uncaught exception 'Magento\Framework\Exception\LocalizedException' with message 'Can't create directory 
/var/www/html/magento/magento2.0/var/generation/Magento/Framework/App/ResourceConnection/.' in 
/var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php:103
Stack trace:
#0 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/Autoloader.php(35): Magento\Framework\Code\Generator->generateClass('Magento\\Framewo...')
#1 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Magento\\Framewo...') #2 [internal function]: spl_autoload_call('Magento\\Framewo...')
#3 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Reader/ClassReader.php(19): ReflectionClass->__construct('Magento\\Framewo...')
#4 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectManager/Definition/Runtime.php(44): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\\Framewo...')
#5 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectMana in /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php on line 103`

답변:


33

이 단계를 간단히 수행하여이 문제를 해결했습니다. 단계를 따르십시오 :

  1. var디렉토리 에있는 "di"폴더를 삭제하십시오 (for 2.02.1).
  2. 이 명령을 실행하고 프로젝트 루트 폴더 명령으로 이동하십시오.

    cd /yourmagentoroot/

    Magento 모드가 개발자 인 경우 var/generation디렉토리 (2.0 & 2.1) 또는 generated폴더 (2.2 이상)를 제거하기 만하면 아래 명령을 실행할 필요가 없습니다.

  3. 그런 다음이 명령을 실행하십시오.

    php bin/magento setup:di:compile
  4. 그런 다음이 명령을 실행하십시오 (제작 모드에서만 필요함).

    php bin/magento setup:static-content:deploy
  5. 마지막으로 파일 / 디렉토리 권한을 부여하십시오 (필요한 경우).


SUDO를 해결하는 방법 : snag.gy/hC5JDL.jpg
zus

1
창에서 @zus는 sudo없이 시도
Murtuza Zabuawala

31

varpub 디렉토리에 모든 권한 (읽기 / 쓰기 / 실행)을 부여 하면이 문제가 해결되었습니다.

sudo chmod -R 777 var pub

또는 sudo를 사용하여 명령을 실행할 수도 있습니다 .

sudo php bin/magento setup:upgrade

또한 캐시를 지우십시오.

sudo rm -rf var/cache/* var/generation/*

magento 파일 시스템 소유자 또는 웹 서버 사용자 (www-data / nginx)에 sudo 액세스 권한이있는 경우가 있습니다. 다음과 같은 명령을 실행할 수 있습니다 : sudo -u www-data bin / magento list--
div

12

소유권 다시 설정

CentOS: chown -R :apache .
Ubuntu: chown -R :www-data .

링크를 참조하십시오


지금이 오류가 발생합니다
Murtuza Zabuawala

1
경고 : ltrim ()은 매개 변수 1이 문자열, 152 행의 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract.php에 제공된 문자열 일 것으로 예상합니다.주의 : 초기화되지 않은 문자열 오프셋 : 81 행의 /var/www/html/magento/magento2.0/vendor/magento/framework/Autoload/ClassLoaderWrapper.php의 0 알림 : 초기화되지 않은 문자열 오프셋 : /var/www/html/magento/magento2.0/의 0 317 행의 vendor / composer / ClassLoader.php 경고 : ltrim ()은 매개 변수 1이 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract에 제공된 매개 변수 1 인 문자열을 예상합니다. PHP 온라인
Murtuza Zabuawala

1
@murtuza var/generation폴더와 cache디렉토리 를 지우고 var다시 시도하십시오.
Maddy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.