Magento под PHP 5.4 Webserver - фатально: getFrontNameByRoute () для не-объекта

14

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

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

philwinkle
источник
Magento 1.7.x отлично работает на PHP 5.4.14 на Apache под php_mod или PHP_FPM, пробовал их обоих в виртуальной машине с 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 и не рискуйте, используя неофициально поддерживаемые

davidalger
источник
Спасибо за быстрый ответ - я понимаю, что поддерживается и не поддерживается; Я пытаюсь увидеть, экспериментирует ли кто-нибудь еще с этим в данный момент. Слишком много времени с Laravel заставляет меня хотеть эту функцию, я полагаю ...
philwinkle
Хорошо, так что больше того, с чем мы столкнулись, чтобы увидеть, сможем ли мы заставить его работать ... понятно.
Давидгер
1
Это больше для экспериментов, чем для чего-либо еще - у меня есть около 15 виртуальных машин CentOS и несколько стандартных виртуальных машин, настроенных с Magento на всех уровнях CE / EE - мне просто любопытно, как это будет работать для запуска новых функций / разработки. Если вы когда - либо видел его в действии, Laravel имеет довольно внушительную демонстрацию , где они git cloneи php -S 0.0.0.0:80и БУМ - демо - приложение. Конечно, Magento является платформой на вершине Zend, и я уверен, что смогу повторить такую ​​демонстрацию с ZF.
Philwinkle