Erro com cache_dir e diretório tmp

Escrito por Mario SAM

Esse erro vem assombrando diversos usuários desde as primeiras versões do Magento, já aconteceu inclusive comigo, em uma das minhas instalações em servidores online.

Justamente por cada servidor/hospedagem ter seu próprio checklist de segurança e restrições. Alguns deles acabam atrapalhando o processo de instalação da plataforma, gerando o erro:

Could not determine temp directory, please specify a cache_dir manually

Vejamos então como resolver esse problema.

Quando ocorre

Durante a instalação do Magento, alguns diretórios podem ficar sem permissão de escrita.

E isso gera diversos problemas, pois alguns diretórios precisam ter permissão para criar arquivos temporários, como por exemplo: pasta de download de módulos, diretório de sessão gerenciado por arquivos, armazenamento de imagem dos produtos, etc.

Após a instalação, quando você acessar o backend do Magento pode se deparar com a famosa mensagem: Error log record number.

Abra o arquivo conforme explicado no post Identificando o problema, e se encontrar a mensagem:

Could not determine temp directory, please specify a cache_dir manually

Siga os passos abaixo.

1. Permissão manual

Reveja a permissão de alguns diretórios, normalmente após a instalação padrão do Magento, apenas os diretórios abaixo precisam ter permissão de escrita (777):

/media
/var

A pasta “media” para a criação das imagens dos produtos, e a pasta “var” para o cache, sessão, e importação/exportação de arquivos.

Abra seu FTP, clique com botão direito em cima do diretório e altere as permissões caso seja necessário.

Crie uma pasta com nome “tmp” no diretório root da sua instalação já com a persmissão 777.

2. Informando o diretório temp

Agora você vai informar ao Magento que deve utilizar essa pasta “tmp” para armazenar os arquivos temporários. Para isso abra o arquivo:

lib > Zend > Cache > Backend > File.php

Encontre no início do código a declaração do array $_options e altere o valor da variável cache_dir de null para tmp como mostrado abaixo:

protected $_options = array(
    'cache_dir' => 'tmp',

Basta salvar o arquivo e me dar um abraço que tudo vai funcionar.

Se o problema persistir, entre em contato pelo Fórum da Escola Magento.

Sucesso!

O Autor

Mario SAM

Desenvolvedor Magento com certificação M1 Developer e M1 FrontEnd Developer. Graduado em Web Design e Programação, pós-graduado em Gestão de Projetos e TI. Não sou matemático mas estou aqui para somar.