Magento在PHP 5.4 Web服务器下-致命:非对象上的getFrontNameByRoute()


14

有没有人设法通过内置的Web服务器使Magento在PHP 5.4下运行?我已经使用HTRouter PHAR来模仿.htaccess规则-但到目前为止,我空无一人,目前所有道路都通向

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


Magento 1.7.x在Apache的PHP 5.4.14上以php_mod或PHP_FPM正常运行,都在运行Ubuntu的VM中进行了尝试。至于内置服务器,我还没有尝试过。
Petar Dzhambazov

Answers:


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……尽管是否需要PHP 5.4仍有很多争论,并且最终支持它是显而易见的。

我认为其中一些兼容性问题源于PHP 5.4的SimpleXML实现中的问题:https ://bugs.php.net/bug.php ? id = 62639

我的结论:坚持使用最新的PHP 5.3.x构建,不要冒险使用非官方支持


感谢您的快速回复-我知道支持什么,不支持什么;我正在尝试看看目前是否有人在尝试它。我想与Laravel在一起的时间太多让我想要这个功能...
philwinkle

好的,那么更多的是弄乱了,看看我们是否可以使它正常工作……陷阱。
大卫

1
最重要的是试验-我在CE / EE的所有不同级别上安装了大约15个CentOS VM和一堆样板化的VM以及Magento-我很好奇这将如何引导新功能/开发。如果您在实际中看到过它,Laravel会提供一个令人印象深刻的演示,他们git clone和BOOM- php -S 0.0.0.0:80演示应用程序一起使用。当然,Magento是Zend的平台,我敢肯定我可以用ZF复制这种演示。
philwinkle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.