Khắc phục PHP2Shell cho framework, blog hoặc cửa hàng: xác định PHP đang chạy, kiểm tra tương thích, gỡ vướng khi nâng cấp và xác minh CVE-2026-109618 cùng CVE-2026-109619.
Tất cả ứng dụng
Laravel
Khôi phục composer.lock và cập nhật Illuminate theo bộ tương thích. Đọc từng hướng dẫn phiên bản lớn, kiểm tra Horizon, xác thực, Carbon và lưu trữ. Điều phối job đã tuần tự hóa và khởi động lại mọi tiến trình thường trực sau đổi PHP; trang chủ chạy không xác nhận hàng đợi. Kiểm kê bootstrap/app.php, Blade và các gói Illuminate thực tế. Lưu cấu hình scheduler cùng danh sách worker Horizon để đội vận hành có thể xác nhận mọi tiến trình đã đổi phiên.
Đọc hướng dẫn ↗Symfony
Đồng bộ thành phần Symfony và Flex recipes. Xử lý API lỗi thời trước khi đổi bản lớn. Doctrine, Twig, Messenger và xác thực có thể cản trở. Dựng lại container thử nghiệm, kiểm tra HTTP lẫn worker console. Đừng bỏ qua symfony.lock và config/bundles.php: recipe và bundle có vòng đời riêng. So cấu hình dịch vụ sinh ra sau cập nhật với cấu hình đã tùy biến trước đó.
Đọc hướng dẫn ↗ThinkPHP
Phân biệt ThinkPHP 5.0, 5.1, 6, 8 và gói ORM/template riêng. Bản sao thư mục có thể không có lock. Kiểm tra route, middleware, behaviors cũ và tag tự viết. Không chỉ chép đè thư mục thinkphp ở production. Giữ bản sao cấu hình kết nối, định nghĩa model và tag template trước chuyển. Với dự án chép thư mục thủ công, cần đối chiếu mã framework thật thay vì tin tên thư mục TP5.
Đọc hướng dẫn ↗CodeIgniter
CI3 và CI4 khác cấu trúc. Cài codeigniter4/framework đè system/ CI3 không phải di chuyển. Kiểm kê lớp core tùy chỉnh, hooks và session. Chuyển cấu hình/mã trên staging rồi so sánh đăng nhập và DB. Bản phụ CI4 cũng tăng yêu cầu PHP. Kiểm tra system/core/CodeIgniter.php để phân biệt bản cũ với ứng dụng có app/Config. Ghi lại hooks và lớp kế thừa tùy chỉnh, không chỉ controller công khai.
Đọc hướng dẫn ↗Yii
Tách Yii 1, 2, 3. Mẫu yiisoft/yii2 chỉ mô tả một bản vá Yii 2. Kiểm tra extension, RBAC, ActiveRecord, widgets. Đổi thế hệ cần di chuyển ứng dụng, không chỉ sửa ràng buộc Composer. Thư mục protected/ có thể là dấu hiệu Yii 1, trong khi gói yiisoft/yii2 thuộc thế hệ khác. Thu thập cấu hình ứng dụng thực tế và phiên bản extension trước quyết định xây lại.
Đọc hướng dẫn ↗CakePHP
CakePHP 3.10.5 loại PHP 8; 4.5.12 cũng giới hạn dưới PHP 8.4. Đọc từng hướng dẫn chuyển bản lớn. Rà chữ ký entity, finder tùy chỉnh, plugin xác thực/phân quyền. Thử truy vấn và biểu mẫu đại diện. Đối chiếu config/app.php và src/Model với hướng dẫn ORM tương ứng. Đặc biệt thử finder tự viết trả về dữ liệu cho form vì lỗi có thể xuất hiện sau khi truy vấn đã thành công.
Đọc hướng dẫn ↗Laminas / Zend Framework
Phân biệt Zend Framework 1, 2, 3 và Laminas. Bảng là mẫu laminas-mvc. Kiểm kê namespace, ServiceManager factory và cấu hình module trước khi chuyển trên bản sao. Đánh giá module bị bỏ riêng, kiểm tra session và tạo dịch vụ. Lập danh sách module trong config/modules.config.php và dịch vụ do factory tùy biến tạo. Chuyển namespace không tự sửa module bên thứ ba đã ngừng duy trì.
Đọc hướng dẫn ↗Slim
Slim 3 sang 4 thay PSR-7, factory, container và thứ tự middleware. Điều kiện bản vá Slim 3 mới khác bản đầu. Dùng đúng lock và thử xác thực, request body, xử lý lỗi, phát response. Xem public/index.php để hiểu ứng dụng khởi tạo container và xếp middleware thế nào. Kiểm thử đường dẫn trả lỗi cũng như đường dẫn thành công; thứ tự xử lý sai dễ bỏ qua khi chỉ mở trang chủ.
Đọc hướng dẫn ↗Phalcon
Phalcon là extension PHP biên dịch. Composer không tự thay phalcon.so/DLL. PHP 8.1+ trong tài liệu 5.9 không bảo đảm mọi binary. Khớp ABI, kiến trúc, NTS/ZTS và xác nhận nạp ở cả CLI lẫn FPM. Lưu kết quả php --ri phalcon và kiểm tra lại môi trường FPM. Windows DLL và phalcon.so không hoán đổi được giữa kiến trúc hay kiểu build; phải có gói thích hợp từ nguồn tin cậy.
Đọc hướng dẫn ↗Hyperf
Hyperf dùng worker thường trực và Swoole/OpenSwoole. Đồng bộ hyperf/*, coroutine client và ABI. Chỉ restart proxy không đủ. Thử phục hồi connection pool, hàng đợi, lịch tác vụ rồi thay toàn bộ worker theo tài liệu. Kiểm tra bin/hyperf.php và cấu hình pool trong config/autoload. Chuyển image PHP mà không thay worker đang sống có thể khiến yêu cầu tiếp tục chạy trên tiến trình cũ.
Đọc hướng dẫn ↗WordPress
WordPress core, theme, plugin có yêu cầu PHP riêng. Xem Site Health/version.php, cả child theme, mu-plugins và drop-ins. Cập nhật và thử bản sao đầy đủ trước khi đổi PHP Web. Mức tối thiểu cũ không khuyến nghị PHP hết hỗ trợ. Ghi phiên bản từng plugin đang bật, mã tùy chỉnh trong functions.php và nội dung mu-plugins. Plugin tắt nhưng còn file vẫn cần quản lý; không suy ra trạng thái bảo mật chỉ từ core mới.
Đọc hướng dẫn ↗WooCommerce
WooCommerce cần bộ WordPress, PHP, cổng thanh toán và theme override tương thích. Bảo toàn đơn, phối hợp dừng ghi khi chuyển cuối. Thử cập nhật DB, HPOS, Action Scheduler và callback sandbox. Hạ PHP không hoàn tác schema hay khôi phục đơn phát sinh sau backup. Lưu danh sách template bị theme ghi đè và phiên bản gateway riêng. Dùng đơn thử kiểm tra trạng thái sau thông báo chậm hoặc lặp; một lần chuyển hướng thanh toán thành công chưa kiểm tra toàn bộ luồng.
Đọc hướng dẫn ↗Drupal
Đồng bộ Drupal core, core-recommended, Drush, module. Xóa API tùy chỉnh lỗi thời và thử DB hook/import cấu hình trên bản sao. Drupal 7 không nằm trong gói Composer Drupal 8+. Mức tối thiểu không phải chính sách PHP hỗ trợ đầy đủ. Đừng chỉ cập nhật drupal/core mà bỏ core-recommended và công cụ Drush. Chạy hook cập nhật trên dữ liệu sao chép, kiểm tra module riêng và khả năng import cấu hình trước cửa sổ bảo trì.
Đọc hướng dẫn ↗Joomla
Dùng manifest Joomla và kiểm tra trước cập nhật. Chuyển template override và plugin theo lộ trình chính thức. Plugin tương thích không bảo đảm mọi extension. Sao lưu file và DB cùng nhau, kiểm tra admin và route đa ngôn ngữ. Đọc administrator/manifests/files/joomla.xml cùng kết quả kiểm tra trước nâng cấp. Giữ danh sách template override vì thay core không tự làm mã override tương thích.
Đọc hướng dẫn ↗Magento Open Source / Adobe Commerce
Magento/Adobe Commerce cần ma trận đúng edition và patch bên cạnh Composer. Kiểm tra tìm kiếm, DB, cache, broker. Thử module riêng/indexer, dựng gói và lên lịch bảo trì. Xác nhận tổng tiền, đơn bất đồng bộ, callback trước khi nhận đơn mới. Xác định bản Open Source hay Adobe Commerce và hậu tố patch trước đọc ma trận hệ thống. app/code có thể chứa module quan trọng không xuất hiện như tiện ích tải từ marketplace.
Đọc hướng dẫn ↗PrestaShop
Minimum composer.json PrestaShop không phải ma trận PHP đã thử đầy đủ. Kiểm tra bản đích, Symfony, thanh toán, theme, overrides. Thử Update Assistant trên DB sao chép, multistore và lịch sử đơn. Rollback phải ghép file và DB đúng phiên. Ghi nhận modules/, themes/ và overrides/ của cửa hàng thật. So lịch sử đơn và cấu hình nhiều cửa hàng sau thử nghiệm, đừng chỉ kiểm tra trang sản phẩm mới tạo.
Đọc hướng dẫn ↗OpenCart
Xác định bản phân phối OpenCart, OCMOD/VQMod, theme và extension. Kiểm tra startup chỉ là minimum. Diễn tập chuyển ứng dụng/DB, kiểm tra thanh toán, thông báo, mail, đường dẫn storage trước mở đơn. OCMOD và VQMod có thể làm mã chạy khác mã gốc trên đĩa. Lưu danh sách chỉnh sửa và vị trí storage thực tế, kiểm tra lại thông báo thanh toán không cần phiên đăng nhập của người mua.
Đọc hướng dẫn ↗PHPCMS V9
Xem PHPCMS V9 là ứng dụng thừa kế cho đến khi rõ nguồn và sửa đổi. Trang chính thức cũ chưa xác minh được nên không nêu khoảng PHP chung. Rà mysql_*, encoding, model, tag offline; giữ file đính kèm và URL bài khi chuyển. Lấy mẫu bài ở từng loại model đã dùng, kể cả nội dung có trường mở rộng và nhiều ảnh. So liên kết tải xuống cùng ảnh đại diện để phát hiện tham chiếu còn trỏ kho cũ. Trước xuất PHPCMS, ánh xạ ID chuyên mục/model, field riêng, đính kèm và tiền tố DB thật. So trang chi tiết/đường dẫn. Chỉ chuyển nội dung có thể mất field hoặc ảnh còn trỏ máy cũ.
Đọc hướng dẫn ↗DedeCMS / 织梦
Phân biệt DedeCMS gốc, bản thương mại và DedeBIZ. PHP 5.6+ trên trang hiện tại không chứng minh mọi gói 5.7 cũ. Rà lớp SQL, model, templets, encoding offline. Giữ DB, uploads, URL tĩnh; không chép đè sản phẩm khác. Kiểm tra một mẫu ở mỗi channel đang hoạt động, không chỉ loại bài mặc định. Những template sinh file tĩnh cần được ghi lại trước chuyển để bài cũ vẫn giữ địa chỉ đã chia sẻ. Với DedeCMS, kiểm tra bảng chính/phụ từng kênh, khóa và tiền tố thật. Giữ tác giả, chuyên mục, template, đường dẫn tĩnh. So số lượng và bài đầy đủ có ảnh; chỉ archives có thể mất field.
Đọc hướng dẫn ↗Discuz! X
Ghi Discuz! X, UCenter, plugin riêng. Ngoài X3.4/X3.5 còn cần build và GBK/UTF-8. Dùng đúng gói, thử đăng nhập chung, đồng bộ người dùng, đính kèm, encoding với bộ phục hồi đầy đủ. Kiểm tra ứng dụng nào khác dùng UCenter trước bảo trì. Sao chép riêng diễn đàn mà bỏ cấu hình và dữ liệu tài khoản dùng chung có thể khiến thử đăng nhập không phản ánh hệ thống thật. Phục hồi forum/UCenter cùng nhau và cách ly, xác định site khác liên kết. Giữ đính kèm/quan hệ ID người dùng. Điều phối ghi tài khoản, thử đăng nhập từng ứng dụng; trang chủ không chứng minh nhất quán.
Đọc hướng dẫn ↗Typecho
Minimum README Typecho chỉ áp dụng tag trích dẫn. Theme/plugin chưa chắc tương thích. Kiểm tra hooks, hàm theme, DB adapter, route. Sao lưu DB cùng usr/. So permalink, bình luận, Markdown, media sau cập nhật. Giữ usr/themes và usr/plugins bên cạnh cơ sở dữ liệu. Thử bình luận cũ, bài Markdown và URL ảnh tải từ trước; một bài mới tạo không bao phủ dữ liệu lịch sử.
Đọc hướng dẫn ↗EC-CUBE
Đồng bộ EC-CUBE, Symfony, Doctrine và plugin thanh toán. Xác định đúng 4.x, app/Customize và Twig. Diễn tập migration DB, vận chuyển/thuế, tiếng Nhật, return và callback sandbox. Đọc thay đổi của đúng bản EC-CUBE và payment plugin trong app/Plugin. app/Customize và app/template phải được rà riêng, đặc biệt khi quy tắc vận chuyển hoặc thuế đã bị sửa.
Đọc hướng dẫn ↗TYPO3
Đánh giá core TYPO3 và extension cùng nhau. Kiểm kê extension riêng, Fluid, TypoScript, cấu hình site. Thử Upgrade Wizards trên staging, backend và frontend. Minimum core không bảo đảm extension hay hợp đồng hỗ trợ kéo dài. Kiểm kê typoscript, cấu hình site và các extension có tiền tố EXT:. Sau Upgrade Wizards, thử biên tập nội dung thật và scheduler, không chỉ kết quả cài đặt thành công.
Đọc hướng dẫn ↗Shopware
Bản phụ và patch Shopware đều quan trọng. Kiểm kê apps/plugins riêng, Symfony; theo đúng thứ tự chính thức. Dựng lại asset khi cần và restart consumer. Thử tìm kiếm, checkout, API trên bản sao; Composer thành công không bảo đảm nhận đơn. Rà custom/plugins và custom/apps riêng với shopware/core. Chuẩn bị bước dựng Administration theo tài liệu của bản đích và kiểm tra consumer xử lý thông điệp tồn từ trước.
Đọc hướng dẫn ↗Gỡ trở ngại khi vá PHP2Shell
Khắc phục PHP2Shell cho trang PHP không còn người bảo trì
Không có lập trình viên PHP? Khôi phục quyền truy cập, thử bản sao lưu và xác định môi trường. Sau đó chọn PHP đã vá, di chuyển hoặc lưu trữ tĩnh để xử lý PHP2Shell.
Khắc phục PHP2Shell - xử lý lỗi nâng cấp PHP
Xử lý API bị xóa, xung đột phụ thuộc, thiếu phần mở rộng và lỗi cổng đang cản bản vá PHP2Shell. Khôi phục dịch vụ trên PHP đã vá rồi xác minh cả hai CVE.
Tương thích PHP để khắc phục PHP2Shell
Đây là các bản phát hành cụ thể, không bảo đảm toàn bộ nhánh chính. Mức tối thiểu không có giới hạn trên không chứng minh hỗ trợ mọi PHP mới hơn. Kiểm tra tệp khóa, phần mở rộng và chính sách hỗ trợ hiện tại.
Kiểm kê trước khi khắc phục PHP2Shell
Dùng bản sao làm việc được phép. Lệnh kiểm kê CLI và gói đã khóa, không vá PHP hoặc xác minh môi trường Web. Phiên bản PHP trong ví dụ prohibits chỉ dùng để so sánh.
Xác minh bản vá PHP2Shell
Tương thích ứng dụng, bảo trì và bảo mật PHP là ba kiểm tra riêng. Chọn nhánh PHP còn hỗ trợ và có cả hai bản vá CVE, rồi kiểm tra tiến trình Web, tác vụ và bản sao. Cập nhật plugin không thay PHP.
| Nhánh PHP | Phiên bản gốc thấp hơn | Bản vá đầu tiên | Kết thúc hỗ trợ bảo mật |
|---|---|---|---|
| PHP 8.5 | < 8.5.12 | ✓ 8.5.12 | 31 thg 12, 2029 |
| PHP 8.4 | < 8.4.27 | ✓ 8.4.27 | 31 thg 12, 2028 |
| PHP 8.3 | < 8.3.36 | ✓ 8.3.36 | 31 thg 12, 2027 |
| PHP 8.2 | < 8.2.35 | ✓ 8.2.35 | 31 thg 12, 2026 |
Các nhánh này không có bản phát hành PHP thường lệ. Có backport nguồn tối thiểu cho 7.4, 8.0 và 8.1; cần xác minh hỗ trợ nhà cung cấp riêng. Đọc hướng dẫn ↗