php 5.4 WebServer下的Magento - 致命:getFrontNameByRoute()非对象
-
16-10-2019 - |
题
是否有人设法让Magento在PHP 5.4下运行 内置的Web服务器?我已经使用了 htrouter Phar 要模仿.htaccess规则 - 但是到目前为止,我要空着
Fatal error: Call to a member function getFrontNameByRoute() on a non-object
解决方案
因此,我快速研究了这一点,并很容易运行它。
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),它模仿了库存杂志中的规则 .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
其他提示
根据 系统要求, ,Magento需要“ PHP 5.2.13-5.3.15”。
Magento 2(最后我听到的)甚至还没有完全支持PHP 5.4……尽管关于是否需要它有很多争论,并且对其的最终支持是显而易见的。
我认为,这些兼容性问题中的一些源于PHP 5.4的单纯化实施中的问题: https://bugs.php.net/bug.php?id=62639
我的结论是:坚持最新的PHP 5.3.x构建,不要使用非官方支持的风险