Magento unter PHP 5.4 Webserver - fatal: getFrontNameByRoute () auf Nicht-Objekt

14

Hat es jemand geschafft, Magento unter PHP 5.4 mit dem eingebauten Webserver zum Laufen zu bringen ? Ich habe den HTRouter PHAR verwendet , um die .htaccess-Regeln nachzuahmen - aber bis jetzt steige ich leer auf, alle Straßen führen derzeit zu

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

Philwinkle
quelle
Magento 1.7.x läuft unter PHP 5.4.14 unter Apache einwandfrei als php_mod oder PHP_FPM und hat beide in einer VM unter Ubuntu ausprobiert. Was den eingebauten Server angeht, den habe ich noch nicht ausprobiert.
Petar Dzhambazov

Antworten:

11

Also habe ich einen kurzen Blick darauf geworfen und es ziemlich einfach laufen lassen.

Anleitung für 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

Dann habe ich einen einfachen Router erstellt (anstatt HTRouter zu verwenden), der die Regeln in einem Standard-Magento nachahmt .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';
  }

?>

Dann startete der PHP-Server und zeigte darauf router.php(die Datei von oben).

php -S 172.16.0.249:80 router.php

Funktioniert gut :)

Inhalt von sonassi.com

Ben Lessani - Sonassi
quelle
3

Gemäß den Systemanforderungen benötigt Magento "PHP 5.2.13 - 5.3.15".

Magento 2 (wie ich zuletzt gehört habe) unterstützt PHP 5.4 noch nicht vollständig ... obwohl es viele Debatten darüber gibt, ob man es benötigt oder nicht, und die endgültige Unterstützung dafür ist offensichtlich.

Einige dieser Kompatibilitätsprobleme sind meines Erachtens auf Probleme in der SimpleXML-Implementierung von PHP 5.4 zurückzuführen: https://bugs.php.net/bug.php?id=62639

Mein Fazit: Bleibe bei der neuesten Version von PHP 5.3.x und riskiere nicht, nicht offiziell unterstützte Versionen zu verwenden

Davidalger
quelle
Vielen Dank für die schnelle Antwort. Ich verstehe, was unterstützt wird und was nicht. Ich versuche gerade herauszufinden, ob noch jemand damit experimentiert. Zu viel Zeit mit Laravel bringt mich dazu, dieses Feature zu wollen, nehme ich an ...
philwinkle
ok, also eher was dran ist, um zu sehen, ob wir es zum Laufen bringen können ... gotcha.
Davidalger
1
Es ist mehr experimentell als alles andere - ich habe ungefähr 15 CentOS-VMs und eine Reihe von Boilerplate-VMs, die mit Magento auf allen CE / EE-Ebenen eingerichtet wurden. Wenn Sie es jemals in Aktion gesehen haben, hat Laravel eine ziemlich beeindruckende Demo, wo sie git cloneund php -S 0.0.0.0:80und BOOM - Demo-App. Natürlich ist Magento eine Plattform auf Zend und ich bin sicher, ich könnte diese Art von Demo mit ZF replizieren.
Philwinkle