Magento pod PHP 5.4 Webserver - fatal: getFrontNameByRoute () na obiektach innych niż obiektowe

14

Czy ktoś zdołał uruchomić Magento pod PHP 5.4 z wbudowanym serwerem WWW ? Użyłem HTRouter PHAR do naśladowania reguł .htaccess - ale do tej pory jestem pusty, wszystkie drogi w tej chwili prowadzą do

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

philwinkle
źródło
Magento 1.7.x działa dobrze na PHP 5.4.14 na Apache jako php_mod lub PHP_FPM, wypróbowałem je oba na VM z Ubuntu. Jeśli chodzi o wbudowany serwer, tego jeszcze nie próbowałem.
Petar Dzhambazov

Odpowiedzi:

11

Więc rzuciłem na to okiem i dość łatwo działało.

Instrukcje dla Debiana

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

Potem zrobiłem prosty router (zamiast HTRoutera), który naśladował zasady w magazynie Magento .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';
  }

?>

Następnie uruchomiłem serwer PHP i wskazałem go router.php(plik z góry).

php -S 172.16.0.249:80 router.php

Działa dobrze :)

Treści pochodzą z sonassi.com

Ben Lessani - Sonassi
źródło
3

Zgodnie z wymaganiami systemowymi , Magento wymaga „PHP 5.2.13 - 5.3.15”.

Magento 2 (ostatnio słyszałem) jeszcze nie w pełni wspiera PHP 5.4… chociaż toczy się wiele dyskusji na temat tego, czy należy go wymagać, a ostateczne poparcie dla niego jest oczywiste.

Uważam, że niektóre z tych problemów ze zgodnością wynikają z implementacji SimpleXML w PHP 5.4: https://bugs.php.net/bug.php?id=62639

Mój wniosek: trzymaj się najnowszej wersji PHP 5.3.x i nie ryzykuj korzystania z nieoficjalnie obsługiwanej wersji

davidalger
źródło
Dzięki za szybką odpowiedź - Rozumiem, co jest, a co nie jest obsługiwane; Próbuję sprawdzić, czy w tej chwili ktoś eksperymentuje z tym. Zbyt dużo czasu z Laravelem sprawia, że ​​chcę tę funkcję, jak sądzę ...
philwinkle
ok, więc więcej z tego, co zostało pomieszane, aby zobaczyć, czy możemy sprawić, że zadziała… Gotcha.
davidalger
1
To bardziej eksperymentowanie niż cokolwiek innego - mam około 15 maszyn wirtualnych CentOS i kilka maszyn wirtualnych opartych na płycie głównej skonfigurowanych z Magento na wszystkich różnych poziomach CE / EE - jestem tylko ciekawy, jak to by działało, aby uruchomić nowe funkcje / rozwój. Jeśli kiedykolwiek widział go w akcji, laravel ma dość imponujący pokaz gdzie git clonea php -S 0.0.0.0:80i BOOM - demo aplikacji. Oczywiście Magento jest platformą na Zend i jestem pewien, że mógłbym powtórzyć tego rodzaju demo z ZF.
philwinkle