Magento під PHP 5.4 Веб-сервер - фатальний: getFrontNameByRoute () на об'єкт


14

Хтось встиг змусити Magento працювати під PHP 5.4 за допомогою вбудованого веб-сервера ? Я використовував PHR HTRouter, щоб імітувати правила .htaccess - але поки я виходжу порожнім, усі дороги на даний момент ведуть до

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


Magento 1.7.x працює нормально на PHP 5.4.14 на Apache як php_mod або PHP_FPM, спробував їх обидва у VM під керуванням Ubuntu. Щодо вбудованого сервера, той, якого я ще не пробував.
Петро Джамбазов

Відповіді:


11

Тож я швидко проаналізував це і змусив його працювати досить легко.

Інструкції для 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

Тоді я зробив простий маршрутизатор (замість того, щоб використовувати HTRouter), який наслідував правила в запасі 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';
  }

?>

Потім запустив PHP-сервер і вказав на нього router.php(файл зверху).

php -S 172.16.0.249:80 router.php

Працює просто чудово :)

Вміст отримується з sonassi.com


3

Відповідно до системних вимог Magento вимагає "PHP 5.2.13 - 5.3.15".

Magento 2 (востаннє я чув) ще навіть не підтримує PHP 5.4 ще ... хоча є багато дискусій щодо того, вимагати цього чи ні, і остаточна підтримка цього очевидна.

Деякі з цих проблем із сумісністю походять з, я вважаю, проблем у реалізації SimpleXML PHP 5.4: https://bugs.php.net/bug.php?id=62639

Мій висновок: дотримуйтесь найновішої збірки PHP 5.3.x і не ризикуйте використовувати не офіційно підтримувані


Дякую за швидку відповідь - я розумію, що є, а що не підтримується; Я намагаюся дізнатися, чи експериментує хтось із цим на даний момент. Я думаю, що занадто багато часу з Laravel змушує мене захотіти цю функцію ...
philwinkle

ОК, тому більше того, що було заплутано, щоб побачити, чи можемо ми змусити його працювати… gotcha.
davidalger

1
Це скоріше для експериментів, ніж будь-що інше - у мене близько 15 CentOS VM та купа вітрин VB, встановлених разом із Magento на всіх різних рівнях CE / EE - мені просто цікаво, як це би спрацювало для завантаження нових функцій / розвитку. Якщо ви коли - небудь бачив його в дії, Laravel має досить значну демонстрацію , де вони git cloneі php -S 0.0.0.0:80і БУМ - демо - додаток. Звичайно, Magento - це платформа на вершині Zend, і я впевнений, що міг би повторити таку демонстрацію із ZF.
philwinkle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.