Tentamos atualizar nossa instalação do Magento de 1.7.0.2 para 1.8.0.0. Agora temos o seguinte erro em todas as páginas:
Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php on line 165
Tentamos limpar todos os caches, desativar e recompilar o compilador e reindexar o indexador. Hoje cedo tudo correu bem em nossa instalação local. Esta é a mesma instalação, exceto alguns pedidos e dados do cliente.
Quando o compilador está ativado, o erro é alterado em:
Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/includes/src/__default.php on line 17761
Como podemos depurar esse erro?
ce-1.7.0.2
upgrade
ce-1.8.0.0
Michael
fonte
fonte
Respostas:
Olhando para a linha 165
O método
_getRequestRewriteController
deve retornar um objeto. Por alguma razão, não está retornando um objeto no seu sistema.Examinando essa definição de método, vemos o seguinte
Mage examina o
global/request_rewrite/model
nó de configuração para encontrar um alias de classe. Em um sistema de armazenamento, isso deve serQual Magento então usa para instanciar um modelo. Minhas duas suposições são
Há um módulo com um nome de classe inválido diferente aqui, que impede o Magento de instanciar o objeto.
Seu sistema está sem o
Mage_Core_Model_Url_Rewrite_Request
arquivo de classe (atapp/code/core/Mage/Core/Model/Url/Rewrite/Request.php
), que é novo no Magento 1.8fonte
Eu tive o mesmo problema e, além de limpar o cache, tive que definir as permissões de pasta no / var e subdiretórios para 777 (não se preocupe, o arquivo .htaccess em / var impede que tudo seja legível "humano").
fonte
var
pasta, o que significa que o Magneto pode reverter para uma pasta var do sistema que possui uma configuração antiga em cache.Se você possui um servidor de cache como o memcached, tente reiniciá-lo também. Eu tive o mesmo problema e resolvi dessa maneira.
fonte
redis-cli flushall
Limpar cache redis;
Seu problema resolvido.
fonte
Tentei seguir a explicação de @AlanStorm, mas finalmente achei que era um problema de cache. Eu apenas tive que
rm -rf *
todos os arquivos~/public_html/var/cache
e descobri que o site foi carregado corretamente.fonte
Eu tenho o mesmo problema
A exclusão de tudo em / var / cache resolve o problema
fonte
A exclusão de tudo em var / cache também resolveu o problema.
Também foi necessário excluir o arquivo maintenance.flag antes que esse problema ocorresse, pois havia uma página de manutenção.
fonte