Magento под веб-сервером PHP 5.4 - фатальный: getFrontNameByRoute() для не-объекта
Кому-нибудь удалось запустить Magento под управлением PHP 5.4 с помощью встроенного веб-сервера? Я использовал htrouter PHAR для имитации правил .htaccess, но пока я иду пустым, все дороги на данный момент ведут к
Fatal error: Call to a member function getFrontNameByRoute() on a non-object
2 answers
Поэтому я быстро взглянул на это и довольно легко запустил его.
Инструкции для 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
В соответствии с системными требованиями для 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 создавайте и не рискуйте, используя неофициально поддерживаемые