Erro com cache_dir e diretório tmp

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!