Magento 2 - Erro fatal “Não é possível criar diretório” var / generation / Magento /

8

Estou enfrentando um "Ocorreu um problema ao processar sua solicitação" após uma alteração no modo com falha. Eu preciso de ajuda.
Aqui está a saída do log:

a:4:{i:0;s:128:"Can't create directory var/generation/Magento/Framework/App/PageCache/Identifier/.";i:1;s:4945:"#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 vendor/magento/framework/Code/Reader/ClassReader.php(19): ReflectionClass->__construct('Magento\\Framewo...')
#4 vendor/magento/framework/ObjectManager/Definition/Runtime.php(44): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\\Framewo...')
#5 vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(71): Magento\Framework\ObjectManager\Definition\Runtime->getParameters('Magento\\Framewo...')
#6 vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Framewo...')
#7 vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(236): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Framewo...')
#8 vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(53): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Framewo...', NULL, 'identifier', 'Magento\\Framewo...')
#9 vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(82): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\\Framewo...', Array, Array)
#10 vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Framewo...')
#11 vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(236): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Framewo...')
#12 vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(53): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Framewo...', NULL, 'kernel', 'Magento\\PageCac...')
#13 vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(82): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\\PageCac...', Array, Array)
#14 vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\PageCac...')
#15 vendor/magento/framework/Interception/PluginList/PluginList.php(234): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\PageCac...')
#16 vendor/magento/framework/Interception/Chain/Chain.php(66): Magento\Framework\Interception\PluginList\PluginList->getPlugin('Magento\\Framewo...', 'front-controlle...')
#17 vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#18 vendor/magento/module-page-cache/Model/App/FrontController/VarnishPlugin.php(55): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#19 [internal function]: Magento\PageCache\Model\App\FrontController\VarnishPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#20 vendor/magento/framework/Interception/Interceptor.php(141): call_user_func_array(Array, Array)
#21 var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#22 vendor/magento/framework/App/Http.php(115): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#23 vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#24 index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#25 {main}";s:3:"url";s:6:"/main/";s:11:"script_name";s:15:"/main/index.php";}
Konstantinos Koletsas
fonte
Enfrentei o mesmo problema e encontrei solução no meu caso, o servidor não tem espaço suficiente.
Ram Pratap Singh Gour

Respostas:

10

Este é um problema de permissão, o Magento não pode gravar no seu vardiretório.

Por favor, siga a documentação oficial para configurar suas permissões corretamente.

Raphael na Digital Pianism
fonte
4

Isso deve ajudar - ele define suas permissões com base na documentação do magento.

sudo find . -type d -exec chmod 770 {} \; && sudo find . -type f -exec chmod 660 {} \; && sudo chmod u+x bin/magento
Collin Blake
fonte
4

Altere a permissão de reescrita da pasta de geração. Isso funciona para mim.

sudo chmod -R 777  var/*
Liz Eipe C
fonte
Em vez disso, faça 755 para diretórios e 644 para pastas. Em casos especiais, vá para 775 e 664.
Máx.
4

no meu caso, eu apenas executo e o erro desapareceu, pois não quero chmod demais 777.

cd var/generation

chmod -R 777 Magento
bestshop24h
fonte
1
sua sempre sugeriu para não dar 777 permissão
inrsaurabh
-1

Eu tenho o mesmo problema, mas ele se repete sempre que eu libero ou atualizo o cache, é melhor copiar esses dois comandos:

sudo chown -R www-data: www-data

sudo chmod -R 775.

darkmiepje
fonte