Tác giả: Stacy Smith

Bản tiếng Anh


Bạn có thể đã nhận thấy cảnh báo như vậy trong Bảng điều khiển của Bitrix24 On-Premise:

Kể từ ngày 01/02/2023, chúng tôi sẽ chỉ cung cấp hỗ trợ hạn chế cho các sản phẩm của chúng tôi chạy trên các phiên bản PHP dưới 8.0. PHP 8.1 trở lên được khuyến nghị. Bạn hiện đang sử dụng PHP 7.4.33. Vui lòng cập nhật cài đặt PHP của bạn hoặc liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn để được hỗ trợ.

 

Nó có nghĩa là gì ?

Tất cả các phiên bản PHP 7 hiện đã hết hạn sử dụng và không còn được hỗ trợ. Sẽ không có lỗi hoặc bản sửa lỗi bảo mật nào được thực hiện cho bất kỳ phiên bản PHP 7 nào. Do đó, không nên sử dụng bất kỳ phiên bản PHP nào dưới 8.0.

Bạn sẽ không thể cài đặt bất kỳ bản cập nhật nền tảng nào để nhận các tính năng mới, cải thiện tính bảo mật và hiệu suất của trang web cho đến khi bạn nâng cấp phiên bản PHP của mình lên ít nhất là phiên bản 8.0 hoặc phiên bản 8.1 được đề xuất trong môi trường máy chủ ảo của bạn.

Tôi nên làm gì?

Bạn nên lên lịch cập nhật phiên bản PHP của mình lên ít nhất là phiên bản 8.0 hoặc phiên bản 8.1 được đề xuất càng sớm càng tốt.

Việc cập nhật được thực hiện dần dần. Liên hệ với quản trị viên hệ thống của bạn hoặc nhà cung cấp dịch vụ lưu trữ để được hỗ trợ.

1. Hãy chắc chắn để làm một bản sao lưu của trang web của bạn. Bạn có thể sử dụng công cụ tạo bản sao lưu tích hợp hoặc tạo bản sao lưu cấp máy chủ.

2. Cài đặt tất cả các bản cập nhật có sẵn tại Bảng điều khiển > Thị trường > Cập nhật nền tảng .

Cập nhật nền tảng

3. Cài đặt tất cả các bản cập nhật có sẵn cho các giải pháp của bên thứ ba từ Thị trường tại Bảng điều khiển > Thị trường > Cập nhật giải pháp .

Cập nhật giải pháp

4. Cập nhật phiên bản PHP của bạn ít nhất là phiên bản 8.0 hoặc phiên bản 8.1 được khuyến nghị

Nếu sử dụng BitrixVM, bạn có thể cập nhật PHP theo cách thủ công thông qua mục menu thiết bị ảo 1. Quản lý máy chủ trong nhóm - 8. Cập nhật PHP và MySQL . Tìm hiểu thêm về nó trong khóa học này .

 

5. Kiểm tra lại để biết các bản cập nhật giải pháp và nền tảng có sẵn.

Phải làm gì trong trường hợp xảy ra lỗi khi cập nhật phiên bản PHP

• Nếu có lỗi trong hoạt động của các module Bitrix24 tiêu chuẩn, hãy liên hệ với Bộ phận hỗ trợ của Bitrix24 .

Ngoài ra, nếu các giải pháp từ Thị trường có bitrix.*tên của chúng, hãy liên hệ với Bộ phận hỗ trợ của Bitrix24, ví dụ: 

bitrix.eshop 

bitrix.sitecommunity 

bitrix.sitecorporate 

bitrix.siteinfoportal 

bitrix.sitepersonal 

bitrix.learningtemplates

• Nếu có lỗi trong hoạt động của các module bên thứ ba được cài đặt từ Thị trường, hãy liên hệ với nhà phát triển module. Bạn có thể tìm thấy địa chỉ liên hệ của họ trong tab Hỗ trợ.

Các vấn đề thường gặp và cách giải quyết chúng

Các lý do có thể xảy ra đằng sau sự cố sau khi nâng cấp lên PHP 8.x

• Bạn chưa cài đặt các bản cập nhật có sẵn tại Bảng điều khiển > Thị trường > Cập nhật nền tảng trước khi nâng cấp lên PHP 8.x.

• Bạn chưa cài đặt các bản cập nhật có sẵn cho các giải pháp của bên thứ ba từ Thị trường tại Bảng điều khiển > Thị trường > Cập nhật giải pháp trước khi nâng cấp lên PHP 8.x.

• Nhà phát triển chưa cập nhật module để hỗ trợ phiên bản PHP 8.

Cách giải quyết một số vấn đề phổ biến sau khi nâng cấp lên PHP 8.x

• Hạ cấp xuống phiên bản PHP 7.x trước đó, nhận tất cả các bản cập nhật được đề xuất, sau đó nâng cấp lại lên PHP 8.x.

• Nếu việc cài đặt các bản cập nhật không giúp khắc phục sự cố, hãy làm theo các đề xuất từ phần này - Phải làm gì trong trường hợp xảy ra lỗi khi cập nhật phiên bản PHP .

• Tạm thời vô hiệu hóa module có lỗi bằng cách di chuyển nó ra khỏi /bitrix/modules.

• Xóa giải pháp của bên thứ ba có lỗi.

Lưu ý rằng những đề xuất này được cung cấp để giải quyết các vấn đề trong hoạt động của một module cụ thể. Mỗi lỗi nên được nhà phát triển xem xét riêng lẻ.

[Ux11] Lỗi trong mô tả module "#MODULE#". Không thể kết nối máy chủ cập nhật. [Ux11] Lỗi trong mô tả module "#MODULE#".

Lỗi này có thể xuất hiện sau khi nâng cấp phiên bản PHP của bạn lên 8.0 trở lên. Trong trường hợp này, trang web hoạt động bình thường nhưng không thể cài đặt hoặc cập nhật bất kỳ giải pháp nào khác cho đến khi vấn đề được giải quyết.

Giải pháp:

Để sửa lỗi, hãy mở tệp và thay thế mã này bằng một mã khác:

 /bitrix/modules/<module_name>/install/index.phpfunction <module.name>()

chức năng __construct()

 

 

Tập lệnh gặp lỗi và sẽ bị hủy bỏ. Để xem các thông báo lỗi mở rộng, hãy bật tính năng này trong .settings.php

Giải pháp:

Kết nối với FTP/SFTP hoặc đăng nhập vào bảng điều khiển lưu trữ và bật đầu ra lỗi trong /bitrix/.settings.php:

'gỡ lỗi' => đúng,

Sau đó, bạn sẽ thấy văn bản thông báo lỗi trên trang web.

Ví dụ về văn bản thông báo lỗi

Phương thức không tĩnh Super\Functions\CSuperModRep::checkBack() không thể được gọi tĩnh (0) 

/home/bitrix/modules/super.mod/lib/functions/CSuperModRep.php:52 

#0: Super\Functions\CSuperModRep: :checkRepActive() 

/home/bitrix/modules/super.mod/classes/General/CModEvents.php:1621 

#1: CModEvents::OnPageStartHandler() 

/home/bitrix/modules/main/classes/General/module.php: 480 

#2: ExecuteModuleEventEx(array) 

/home/bitrix/modules/main/include.php:163 

#3: require_once(string) 

/home/bitrix/modules/main/include/prolog_before.php:14 

#4: require_once( string) 

/home/bitrix/modules/main/include/prolog.php:10 

#5: require_once(string) 

/home/bitrix/header.php:1

#6: yêu cầu(chuỗi) 

/home/index.php:1

Trong ví dụ này, phương thức bên thứ ba CSuperModRep::checkBack() của super.mod. giải pháp đưa ra lỗi.

Để sửa lỗi, trong checkBack() code, bạn cần khai báo hàm tĩnh .

Thay thế

chức năng checkBack()

qua

chức năng tĩnh công khai checkBack()

 

 

PHP Lỗi nghiêm trọng: $GLOBALS chỉ có thể được sửa đổi bằng cách sử dụng cú pháp $GLOBALS[$name] = $value trong /www/bitrix/modules/main/tools.php

Lỗi này có thể xuất hiện sau khi nâng cấp lên PHP 8.x nếu bạn chưa cài đặt các bản cập nhật nền tảng có sẵn khi sử dụng phiên bản PHP 7.x.

Giải pháp:

Sự cố này đã được khắc phục trong bản cập nhật module chính main 22.100.0.

Hạ cấp xuống phiên bản PHP 7.x trước đó, nhận tất cả các bản cập nhật được đề xuất, sau đó nâng cấp lại lên PHP 8.x.

 

[TypeError] call_user_func_array(): Đối số #1 ($callback) phải là một lệnh gọi lại hợp lệ, phương thức không tĩnh COMP\BXE\EventHandlers::AdminContextMenuShow() không thể được gọi tĩnh (0)...

Lỗi này có thể xuất hiện sau khi nâng cấp lên PHP 8.x nhưng không rõ ràng:

Ví dụ về văn bản thông báo lỗi

[TypeError] 

call_user_func_array(): Đối số #1 ($callback) phải là một lệnh gọi lại hợp lệ, phương thức không tĩnh COMP\BXE\EventHandlers::AdminContextMenuShow() không thể được gọi tĩnh (0) /var/www//bitrix/ 

modules /main/classes/General/module.php:480 

#0: ExecuteModuleEventEx 

/var/www/bitrix/modules/main/interface/admin_ui_list.php:1983 

#1: CAdminUiContextMenu->Show 

/var/www/bitrix/modules/ main/giao diện/admin_ui_list.php:1168 

#2: CAdminUiList->ShowContext 

/var/www/bitrix/modules/main/interface/admin_ui_list.php:630 

#3: CAdminUiList->DisplayFilter 

/var/www/bitrix/modules/ iblock/admin/iblock_element_admin.php:5217 

#4: bao gồm (chuỗi) 

/var/www/bitrix/admin/cat_product_admin.php:3

Văn bản thông báo lỗi không hiển thị thư mục module, nhưng phương pháp này COMP\BXE\EventHandlers::AdminContextMenuShow() thuộc về module bên thứ ba.

Giải pháp:

Để khắc phục lỗi, trong AdminContextMenuShow()đoạn code, bạn cần khai báo hàm tĩnh một cách chính xác.

Thay thế

chức năng AdminContextMenuShow()

Qua

hàm tĩnh công khai AdminContextMenuShow()

 

 

Một màn hình trắng trống sau khi nâng cấp lên PHP 8.x

Lỗi này có thể xuất hiện do cài đặt short_open_tag = Off tham số trong cài đặt PHP.

Giải pháp:

• Đặt giá trị này trong tệp cấu hình PHP: short_open_tag = On.

• Kiểm tra nhật ký máy chủ web để biết bất kỳ lỗi nào có thể xảy ra và khắc phục chúng.

• Ngoài ra, bạn có thể kiểm tra lỗi trên trang có màn hình trắng trống: nhấp chuột phải vào trang và chọn Xem nguồn trang , cuộn xuống và kiểm tra xem có lỗi nào không.



Chưa có tài khoản ? Hãy tạo miễn phí