Sửa lỗi Exec-PHP (Plugin WordPress) Với PHP 7.2
Contents
Bài đăng này là về
Bài đăng này là về sửa lỗi của plugin ” Exec-PHP ” chạy trong WordPress mới nhất với PHP 7.2.
Chuyện gì đã xảy ra thế
Tôi đã nâng cấp phiên bản PHP từ 5.6 lên 7.2 trong máy chủ lưu trữ các trang web WordPress cho khách hàng của tôi vào ngày hôm trước.
Một trong những trang web đã sử dụng Exec-PHP cho phép chúng tôi thực thi mã PHP trực tiếp trong các bài đăng hoặc trang.
Thật không may, nó đã lỗi thời.
Lần cập nhật cuối cùng là 9 năm trước và nó dựa trên PHP dưới 7 tuổi.
Plugin này đã chính thức không được dùng nữa vì vấn đề bảo mật và đã biến mất khỏi các trang Plugin WordPress kể từ cuối năm ngoái.
Dù sao, khách hàng của tôi đã sử dụng nó và dịch vụ vẫn đang hoạt động.
Tôi cần tìm cách thực hiện cả việc di chuyển máy chủ và tiếp tục dịch vụ.
Tại sao nó lỗi
Đó là do một trong những thay đổi không tương thích ngược của PHP 7.0, đó là:
” Không thể gán các đối tượng mới bằng tham chiếu “.
Điều này bị cấm:
class C {}
$c =& new C;
Làm thế nào để sửa chữa nó
Sử dụng plugin thay thế
Đó sẽ là một cách gần như lý tưởng nếu thứ gì đó được tìm thấy.
Sửa đổi mã plugin trực tiếp
Xóa ‘&’ khỏi ‘= &’ như thế này:
- $c =& new C;
+ $c = new C;
Tất cả các mục tiêu đều nằm trong wordpress/wp-content/plugins/exec-php
:
exec-php.php
- dòng 22
include/admin.php
- dòng 53, 56, 57, 63, 64, 79
includes/ajax.php
- dòng 64
includes/cache.php
- dòng 22, 39
includes/manager.php
- dòng 36, 37, 38, 39
Ví dụ: sửa đổi exec-php.php
dòng 22 như thế này:
- $GLOBALS['g_execphp_manager'] =& new ExecPhp_Manager();
+ $GLOBALS['g_execphp_manager'] = new ExecPhp_Manager();
Sau tất cả sửa đổi và thử nghiệm
Trang web WordPress hoạt động tốt với Exec-PHP được sửa đổi như nó đã có.
Khách hàng của tôi hài lòng với máy chủ mới cho đến nay:)