Magento ภายใต้ PHP 5.4 เว็บเซิร์ฟเวอร์ - ร้ายแรง: getFrontNameByRoute () บนไม่ใช่วัตถุ


14

มีใครจัดการให้ Magento ทำงานภายใต้ PHP 5.4 ด้วยเว็บเซิร์ฟเวอร์ในตัวหรือไม่ ฉันใช้HTRouter PHARเพื่อเลียนแบบกฎ. 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 สำหรับการสร้างในเซิร์ฟเวอร์นั้นฉันยังไม่ได้ลอง
Petar Dzhambazov

คำตอบ:


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

ตามข้อกำหนดของระบบวีโอไอพีต้องการ "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
สำหรับการทดลองมากกว่าสิ่งอื่น - ฉันมี VMOS ประมาณ 15 CentOS และ VM จำนวนมากที่ติดตั้งด้วย Magento ในทุกระดับที่แตกต่างกันของ CE / EE - ฉันแค่อยากรู้ว่ามันจะทำงานอย่างไรในการบูตคุณสมบัติใหม่ / การพัฒนา หากคุณเคยเห็นมันทำงานจริง Laravel มีตัวอย่างที่น่าประทับใจซึ่งพวกเขาgit cloneและphp -S 0.0.0.0:80และบูม - แอพตัวอย่าง แน่นอนว่าวีโอไอพีเป็นแพลตฟอร์มที่อยู่บนสุดของ Zend และฉันแน่ใจว่าฉันสามารถจำลองการสาธิตด้วย ZF ได้
philwinkle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.