Önemli hata: Yükseltmeden sonra nesne olmayan bir nesne üzerinde rewrite () işlevini çağırma


12

Magento kurulumumuzu 1.7.0.2'den 1.8.0.0'a yükseltmeye çalıştık. Şimdi tüm sayfalarda şu hatayı aldık:

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

Tüm önbellekleri temizlemeye, derleyiciyi devre dışı bırakmaya ve yeniden derlemeye ve dizinleyiciyi yeniden dizine eklemeye çalıştık. Bugün erken saatlerde yerel kurulumumuzda her şey yolunda gitti. Bu, bazı siparişler ve istemci verileri dışında aynı kurulumdur.

Derleyici etkinleştirildiğinde hata şu şekilde değişir:

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

Bu hatayı nasıl ayıklayabiliriz?


Ben de 1.8 magento yükseltilmiş Mine bazı aynı sorun var ama ben alıyorum hata varien değil ... aşağıdaki hataya bakın:> Ölümcül hata: bir nesne olmayan bir üye fonksiyonu getProductAttribute () çağrısı > /home/shopk3if/public_html/app/design/frontend/base/default/template/catalog/product/price.phtml> 50 plz geliştirici olmadığım için kod için bana yardım et ...

Derlemenin kapalı olduğundan emin misin?
brentwpeterson

@MichaelvanEijden Bunun temel nedenini bulabildiniz mi?
Alan Storm

1
@AlanStorm Herhangi bir nedenle, yükseltme sırasında aktarılan dosyaların yalnızca bir kısmı vardı. Cevabınız beni doğru yere getirdi. Teşekkürler!
Michael

Ben aynı sorunu var ..... ama şimdi magento ZIP kurulum arşivi içeriği ile tüm dosyaların üzerine yazmaya çalıştı .... ama yardımcı olmadı. Bu bir hata ayıklama oturumu olacak! Şimdiye kadar Magento güncellemesi YOK benim için sorunsuz çalıştı!
cljk

Yanıtlar:


5

165. satıra bakıldığında

#File: app/code/core/Mage/Core/Controller/Varien/Front.php
$this->_getRequestRewriteController()->rewrite();

Yöntem _getRequestRewriteControllerbir nesne döndürmelidir. Nedense, sisteminizde bir nesne döndürmüyor.

Bu yöntem tanımına baktığımızda aşağıdakileri görüyoruz

protected function _getRequestRewriteController()
{
    $className = (string)Mage::getConfig()->getNode('global/request_rewrite/model');

    return Mage::getSingleton('core/factory')->getModel($className, array(
        'routers' => $this->getRouters(),
    ));
}

Mage, global/request_rewrite/modelbir sınıf takma adı bulmak için yapılandırma düğümüne bakar . Bir mağaza sisteminde bu

core/url_rewrite_request

Hangi Magento daha sonra bir model başlatmak için kullanır. Benim iki tahminim

  1. Burada farklı, geçersiz sınıf adına sahip bir modül var, bu da Magento'nun nesneyi örneklemesini önlüyor.

  2. Sisteminizde Magento 1.8 sürümündeki yeni Mage_Core_Model_Url_Rewrite_Requestsınıf dosyası (at app/code/core/Mage/Core/Model/Url/Rewrite/Request.php) eksik


1
Ayrıca, aşağıdaki @ navotjer'in cevabına / yorumlarına bakın.
Alan Storm

7

Ben de aynı sorunu vardı ve önbelleği temizlemek yanında, / var ve alt dizinleri 777 için klasör izinleri ayarlamak zorunda (merak etmeyin, / var .htaccess dosyası her şeyi "insan" okunabilir olmasını önler).


1
Bugün bununla karşılaştık ve bu cevabı ikinci hale getirin - yeni bir Magento kod tabanının başlatılması varklasörünüzdeki izinleri değiştirebilir , bu da Magneto'nun önbelleğe alınmış eski bir yapılandırmaya sahip bir sistem var klasörüne dönebileceği anlamına gelir.
Alan Storm

+1 Günümü kurtardın! 1.6.0.1'den 1.9.0.1'e yükseltme yapıldı
toesslab

2

Memcached gibi bir önbellek sunucunuz varsa, yeniden başlatmayı deneyin. Aynı sorunu yaşadım ve bu şekilde çözdüm.


Ya da Redis ise:redis-cli flushall
kiatng

2

Önbelleği temizle;

Redis-cli

FLUSHALL

Çözülmüş sorunu.


2

@AlanStorm'un açıklamasını takip etmeye çalıştım, ama sonuçta önbellekleme sorunu olduğunu gördüm. Sadece rm -rf *tüm dosyaları vardı ~/public_html/var/cacheve sitenin doğru yüklendiğini buldum.


Bu kadar basit. 1.7'den 1.9'a yükseltme yaparken aynı sorunu yaşadım, ancak önbellek klasörünü temizlemeyi unuttum.
Ricardo Martins

1

Bende aynı sorun var

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

/ Var / cache içindeki tüm öğeleri silmek sorunu çözer


0

Var / cache dosyasındaki her şeyi silmek benim için de sorunu çözdü.

Ayrıca bir bakım sayfası mevcut olarak, bu sorun oluşmadan önce maintenance.flag dosyasını silmek zorunda kaldı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.