Kami mencoba memperbarui instalasi Magento kami dari 1.7.0.2 ke 1.8.0.0. Sekarang kami mendapat kesalahan berikut di semua halaman:
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
Kami mencoba menghapus semua cache, menonaktifkan dan mengkompilasi ulang kompiler dan mengindeks ulang pengindeks. Sebelumnya hari ini semuanya berjalan baik di instalasi lokal kami. Ini adalah instalasi yang sama kecuali beberapa pesanan dan data klien.
Ketika kompiler diaktifkan kesalahan berubah dalam:
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
Bagaimana kita bisa men-debug kesalahan ini?
ce-1.7.0.2
upgrade
ce-1.8.0.0
Michael
sumber
sumber
Jawaban:
Melihat garis 165
Metode
_getRequestRewriteController
harus mengembalikan objek. Untuk beberapa alasan, itu tidak mengembalikan objek di sistem Anda.Melihat definisi metode itu, kita melihat yang berikut ini
Mage melihat
global/request_rewrite/model
node konfigurasi untuk menemukan alias kelas. Dalam sistem toko ini seharusnyaYang Magento kemudian gunakan untuk instantiate model. Dua tebakan saya adalah
Ada modul dengan nama kelas yang berbeda dan tidak valid di sini, yang mencegah Magento dari instantiating objek.
Sistem Anda tidak memiliki
Mage_Core_Model_Url_Rewrite_Request
file kelas (atapp/code/core/Mage/Core/Model/Url/Rewrite/Request.php
), yang baru di Magento 1.8sumber
Saya memiliki masalah yang sama, dan selain membersihkan cache, saya harus mengatur izin folder pada / var dan subdirektori ke 777 (jangan khawatir, file .htaccess di / var mencegah semuanya terbaca "manusia").
sumber
var
folder Anda , yang berarti Magneto dapat kembali ke folder sistem var yang memiliki konfigurasi cache lama.Jika Anda memiliki server cache seperti memcached, coba restart juga. Saya memiliki masalah yang sama dan saya menyelesaikannya dengan cara ini.
sumber
redis-cli flushall
Bersihkan cache redis;
Ini memecahkan masalah.
sumber
Saya mencoba mengikuti penjelasan oleh @AlanStorm, tetapi akhirnya menemukan itu adalah masalah caching. Saya hanya perlu
rm -rf *
semua file~/public_html/var/cache
dan saya menemukan bahwa situs dimuat dengan benar.sumber
Saya memiliki masalah yang sama
Menghapus semua di / var / cache memecahkan masalah
sumber
Menghapus semua yang ada di var / cache memecahkan masalah untuk saya juga.
Juga harus menghapus file maintenance.flag sebelum masalah ini terjadi, karena ada halaman pemeliharaan.
sumber