Magento trong PHP 5.4 Webserver - fatal: getFrontNameByRoute () trên phi đối tượng


14

Đã có ai quản lý để Magento chạy theo PHP 5.4 với máy chủ web tích hợp chưa? Tôi đã sử dụng HTRouter PHAR để bắt chước các quy tắc .htaccess - nhưng cho đến nay tôi đang trống rỗng, mọi con đường tại thời điểm này đều dẫn đến

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


Magento 1.7.x chạy tốt trên PHP 5.4.14 trên Apache dưới dạng php_mod hoặc PHP_FPM, đã thử cả hai trong VM chạy Ubuntu. Đối với Máy chủ tích hợp, cái mà tôi chưa thử.
Petar Dzhambazov

Câu trả lời:


11

Vì vậy, tôi đã có một cái nhìn nhanh về điều này và làm cho nó chạy khá dễ dàng.

Hướng dẫn cho 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

Sau đó, tôi đã tạo một bộ định tuyến đơn giản (thay vì sử dụng HTRouter), nó bắt chước các quy tắc trong kho 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';
  }

?>

Sau đó khởi động máy chủ PHP và chỉ vào router.php(tệp từ phía trên).

php -S 172.16.0.249:80 router.php

Hoạt động tốt :)

Nội dung có nguồn gốc từ sonassi.com


3

Theo Yêu cầu hệ thống , Magento yêu cầu "PHP 5.2.13 - 5.3.15".

Magento 2 (lần cuối tôi nghe) thậm chí còn chưa hỗ trợ đầy đủ PHP 5.4 mặc dù có rất nhiều tranh luận về việc có nên yêu cầu hay không và sự hỗ trợ cuối cùng cho nó là rõ ràng.

Một số vấn đề tương thích này xuất phát từ, tôi tin rằng, các vấn đề trong quá trình triển khai SimpleXML của PHP 5.4: https://bugs.php.net/orms.php?id=62639

Kết luận của tôi: Hãy gắn bó với bản dựng PHP 5.3.x mới nhất và đừng mạo hiểm khi sử dụng không được hỗ trợ chính thức


Cảm ơn bạn đã trả lời nhanh - Tôi hiểu những gì được và không được hỗ trợ; Tôi đang cố gắng xem liệu có ai khác đang thử nghiệm nó vào lúc này không. Quá nhiều thời gian với Laravel khiến tôi muốn tính năng này, tôi cho rằng ...
philwinkle

ok, vì vậy nhiều hơn những gì đã được gửi đi để xem liệu chúng ta có thể làm cho nó hoạt động được gotcha không.
davidalger

1
Đó là thử nghiệm nhiều hơn bất cứ điều gì khác - Tôi có khoảng 15 máy ảo CentOS và một loạt máy ảo nồi hơi được thiết lập với Magento ở tất cả các cấp độ CE / EE khác nhau - Tôi chỉ tò mò cách thức này sẽ hoạt động để khởi động các tính năng / phát triển mới. Nếu bạn đã từng nhìn thấy nó trong hành động, Laravel có một bản demo khá ấn tượng nơi họ git clonephp -S 0.0.0.0:80và BOOM - giới thiệu ứng dụng. Tất nhiên, Magento là một nền tảng trên Zend và tôi chắc chắn rằng tôi có thể sao chép loại demo đó với ZF.
philwinkle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.