Magento di bawah PHP 5.4 Webserver - fatal: getFrontNameByRoute () di non-objek

14

Adakah yang berhasil membuat Magento berjalan di bawah PHP 5.4 dengan server web bawaan ? Saya telah menggunakan HTRouter PHAR untuk meniru aturan .htaccess - tapi sejauh ini saya hampir kosong, semua jalan saat ini mengarah ke

Fatal error: Call to a member function getFrontNameByRoute() on a non-object

Philwinkle
sumber
Magento 1.7.x berjalan dengan baik di PHP 5.4.14 di Apache sebagai php_mod atau PHP_FPM, mencoba keduanya di VM yang menjalankan Ubuntu. Sedangkan untuk built in Server, yang saya belum coba.
Petar Dzhambazov

Jawaban:

11

Jadi saya melihat sekilas ini dan menjalankannya dengan mudah.

Instruksi untuk Debian

cat >> /etc/apt/sources.lst <<EOF
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all
EOF

wget -qO - http://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt-get update
apt-get install php5-cli php5-mysqlnd php5-mcrypt php5-common php-pear php5-dev php5-mysql php5-curl php5-mcrypt php5-gd php5-cli php5-xsl php5-imagick

Lalu saya membuat router sederhana (alih-alih menggunakan HTRouter), yang menirukan aturan di Magento saham .htaccess

<?php

  if (preg_match('#^/api/rest#', $_SERVER["REQUEST_URI"])) {
      $_SERVER["REQUEST_URI"] = 'api.php?type=rest';
  } elseif (preg_match('#^/(media|skin|js)#', $_SERVER["REQUEST_URI"])) {
      return false;
  } elseif (file_exists(".".$_SERVER["REQUEST_URI"]))  {
      return false;
  } else {
      include_once 'index.php';
  }

?>

Kemudian mulai server PHP dan arahkan ke router.php(file dari atas).

php -S 172.16.0.249:80 router.php

Bekerja dengan baik :)

Konten bersumber dari sonassi.com

Ben Lessani - Sonassi
sumber
3

Sesuai Persyaratan Sistem , Magento membutuhkan "PHP 5.2.13 - 5.3.15".

Magento 2 (terakhir saya dengar) bahkan belum sepenuhnya mendukung PHP 5.4 namun ... meskipun ada banyak perdebatan tentang apakah perlu atau tidak, dan dukungan akhir untuk itu sudah jelas.

Beberapa masalah kompatibilitas ini berasal dari, saya percaya, masalah dalam implementasi SimpleXML PHP 5.4: https://bugs.php.net/bug.php?id=62639

Kesimpulan saya: Tetap menggunakan PHP 5.3.x build terbaru dan jangan mengambil risiko menggunakan yang tidak didukung secara resmi

davidalger
sumber
Terima kasih atas balasan cepat - Saya mengerti apa yang didukung dan tidak; Saya mencoba melihat apakah ada orang lain yang bereksperimen dengannya saat ini. Terlalu banyak waktu dengan Laravel membuat saya menginginkan fitur ini, saya kira ...
philwinkle
ok, jadi lebih dari apa yang kacau untuk melihat apakah kita bisa membuatnya bekerja ... gotcha.
davidalger
1
Ini lebih untuk eksperimen daripada yang lain - Saya memiliki sekitar 15 VM CentOS dan sekelompok VM boilerplate yang diatur dengan Magento di semua level CE / EE yang berbeda - Saya hanya ingin tahu bagaimana ini akan bekerja untuk mem-bootstrap fitur / pengembangan baru. Jika Anda pernah melihat dalam tindakan, LARAVEL memiliki demo yang cukup mengesankan di mana mereka git clonedan php -S 0.0.0.0:80dan BOOM - demo aplikasi. Tentu saja, Magento adalah platform di atas Zend dan saya yakin saya bisa meniru demo semacam itu dengan ZF.
philwinkle