Magento – Phiên bản PHP 7 làm cho tương thích

Chúng tôi vừa có một chuyển đổi PHP Version do thay đổi máy chủ. Đó là Phiên bản PHP 5.6 trên 7 chuyển đổi -without hỗ trợ các phiên bản cũ.

Tại thời điểm đầu tiên cho thấy Magento (Phiên bản 1.9.1.1) sau đó chỉ này:

Lỗi nghiêm trọng: Lỗi còn tự do: Tên chức năng phải là một chuỗi trong /www/htdocs/app/code/core/Mage/Core/Model/Layout.php:555 Stack trace: #0 /www / htdocs / app / code / core / Mage / Core / Controller / Varien / action.php(390): Mage_Core_Model_Layout->getOutput() #1 /www / htdocs / app / code / core / Mage / CMS / Helper / page.php(137): Mage_Core_Controller_Varien_Action->renderLayout() #2 /www / htdocs / app / code / core / Mage / CMS / Helper / page.php(52): Mage_Cms_Helper_Page->_renderPage(Vật(Mage_Cms_IndexController), 'Myone') #3 /www / htdocs / app / code / core / Mage / CMS / controllers / IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Vật(Mage_Cms_IndexController), 'Myone') #4 /www / htdocs / app / code / core / Mage / Core / Controller / Varien / action.php(418): Mage_Cms_IndexController->indexAction() #5 /www / htdocs / app / code / đồng trong /www/htdocs/app/code/core/Mage/Core/Model/Layout.php trên đường 555

May mắn thay, điều này có thể (hiển nhiên) được dễ dàng sửa chữa. Để kết thúc này, layout.php được sao chép từ các ứng dụng thư mục / code / core / Mage / Core / Model trong ứng dụng thư mục / code / local / Mage / Core / Model. Sau đó, sau đó dòng

$hết. = $ this->getBlock($gọi lại[0])->$gọi lại[1]();

tìm kiếm (hàng 555 khi nhìn từ lỗi) và

$hết. = $ this->getBlock($gọi lại[0])->{$gọi lại[1]}();

thay thế.

Sau đó, các lối vào Magento êm ấm lại. vấn đề hơn nữa là lối vào-phe chưa chú ý.

Khi đăng nhập vào các phụ trợ, chúng tôi vẫn còn có vấn đề, rằng các trang đăng nhập chỉ được nạp lại sau khi nhập tên người dùng và mật khẩu. Các dữ liệu nhập vào là ra đi và không có dấu hiệu của một mật khẩu không chính xác hoặc tương tự.

Có vẻ là một vấn đề với PHP 7 phiên bản hành động, bị cáo buộc trong phiên bản PHP 7 nói đến đã được giải quyết RC3. Đối với chúng tôi nó không phải là.

Để khắc phục vấn đề, chúng ta có file Session.php sao chép từ các ứng dụng thư mục / code / core / Mage / Admin / Model trong ứng dụng thư mục / code / local / Mage / Admin / Model và (với chúng tôi) trong dòng 120 dòng

$điều này->ReneSession();

không chú thích. Sau đó, cũng đăng nhập phụ trợ là không có vấn đề.

Người ta có thể mô phỏng đường đi trước khi các máy chủ chuyển đổi cuối cùng cách Magento sẽ hành động trong trường hợp chuyển đổi sang một phiên bản khác nhau của PHP. Với mục đích này, chỉ có một cần truy cập vào .htaccess trong thư mục gốc của cửa hàng Magento.

Mặc định là đã (bởi # mỗi chú thích)

# Hành động php5-cgi / cgi-bin / php5-cgi
# AddHandler php5-cgi php

chỉ trong những dòng đầu tiên. sau đó chúng có thể được (tùy Hoster) thay đổi phiên bản bằng cách sử dụng CGI.

Với chúng tôi, đây sẽ là ví dụ. vì 7.0 Mô phỏng

AddHandler .php php70-cgi

được.

Tuy nhiên, có những ví dụ. cũng

AddHandler application / x-httpd-php php7

là mglw. công trình. Điều này là tôi nói tùy thuộc vào lưu trữ và, theo yêu cầu, trong này hoặc một phần, bởi một cái nhìn vào cPanel hoặc tương tự. được học.

Được sử dụng trong Magento Version 1.9 bình luận? bổ sung? Ghi chú? vui vẻ!

Xuất bản bởi sợi Dệt

từ 2009 Tôi đã làm việc chặt chẽ với Magento. Tôi bắt đầu với việc tạo ra và hoạt động của các cửa hàng B2C. Điều này đã được mở rộng thông qua công việc của tôi trong lĩnh vực logistics. Điều này dẫn đến hệ thống B2E đầu tiên chuyên. Hôm nay tôi làm việc ngày một ngày với B2C thú vị, B2B- và các dự án B2E và báo cáo trong blog này về những thách thức và đưa ra lời khuyên trong cuộc.

3 Nhận xét về "Magento – Phiên bản PHP 7 làm cho tương thích”

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *