Xử lý lỗi trang trắng khi truy cập do sai version PHP

Bài viết này sẽ hướng dẫn bạn cách xử lý lỗi trang trắng khi truy cập do sai version PHP. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

1. Tình huống gặp phải

– Tiến hành cài đặt website trong môi trường thử nghiệm chạy rất tốt, tuy nhiên đưa lên môi trường Hosting thì Website không chạy, hiển thị trang trắng không có nội dung hoặc không hiển thị lỗi.
– Sau khi nâng cấp hoặc thay đổi mã nguồn thì Website hiển thị nội dung trống (trắng) thay vì trả về nội dung Website như bình thường

2. Xác định nguyên nhân

– Lỗi trang trắng xảy ra do nhiều nguyên nhân, đa phần nguyên nhân là do mã nguồn của Website (lỗi themes, plugins, modules), lỗi phiên bản mã nguồn (ví dụ Joomla 1.5 không chạy được PHP 5.4).
– Một trong những nguyên nhân phổ biến của hiện tượng truy cập Website bị trang trắng là do phiên bản PHP trên Hosting không phù hợp để chạy mã nguồn.
– Để phán đoán chính xác việc Website bị trang trắng có phải do sai phiên bản PHP hay không cần thực hiện việc kiểm tra các thông báo log mà hệ thống trả về.

3. Cấu hình hiển thị thông báo lỗi

3.1 Cấu hình Hosting

– Hosting tại Vinahost có thể dễ dàng điều chỉnh để hiển thị thông báo lỗi bằng cách thay đổi 2 giá trị sau trong phần: Quản lý tài khoản > Cấu hình PH

Display_errors = On
Error_Reporting = E_ALL

– Đối với các thay đổi cấu hình PHP trong file php.ini hoặc .htaccess không có tác dụng tại Hosting Vinahost

3.2 Cấu hình trong mã nguồn website

– Đối với từng bộ mã nguồn có thể điều chỉnh cấu hình trong mã nguồn để hiển thị Error log ra ngoài website dễ dàng cho việc phán đoán lỗi. Một số mã nguồn thông dụng nhất hiện nay có thể cấu hình để ghi lại và hiển thị lỗi như sau:

  • Joomla

– Đăng nhập trang quản trị: Site >> Global Configuration >> Server >> Error Reporting: Chọn Maximum
– Hoặc có thể điều chỉnh trong file configuration.php của mã nguồn, cấu hình biến $error_reporting sử dụng các giá trị sau:

-1: Tắt thông báo lỗi
30709: Hiển thị tất cả các lỗi ngoại trừ warnings và notices (cấu hình tương đương E_ALL & ~(E_NOTICE|E_WARNING) )
30711: Hiển thị tất cả các lỗi bao gồm warnings, không bao gồm notices (cấu hình tương đương E_ALL & ~E_NOTICE )
30719: Hiển thị tất cả các lỗi bao gồm warnings và notices, không bao gồm E_STRIC (cấu hình tương đương E_ALL &~ E_STRIC)
32767: Hiển thị tất cả các lỗi, warning, notices và các lỗi “strict standards” (ví dụ: “Strict Standards: Non-static method … on line XX”) (cấu hình tương đương E_ALL )

– Với mục đích kiểm tra lỗi liên quan đến phiên bản PHP, phần cấu hình này nên sử dụng giá trị 32767 để hiển thị tất cả các lỗi bao gồm gợi ý của PHP về việc các hàm mà mã nguồn đang sử dụng có tương thích / phù hợp với phiên bản PHP mà hệ thống đang sử dụng hay không.
Ví dụ:
public $error_reporting = ‘32767:’;
public $log_path = ‘/home/xxx/public_html/joomla/logs’; #Đường dẫn lưu file log

– Tùy thuộc vào phiên bản PHP máy chủ đang sử dụng mà cấu hình hiển thị tất cả các lỗi E_ALL khác nhau như sau:

32767 nếu là PHP 5.4.x trở lên
30719 nếu là PHP 5.3.x
6143 nếu là PHP 5.2.x
2047 nếu là các phiên bản PHP thấp hơn

  • WordPress

– Thay đổi một số giá trị trong file wp-config.php như sau:

/** Bật WP_DEBUG mode */
define(‘WP_DEBUG’, true);

/** Bật chức năng lưu file log ở đường dẫn sau /wp-content/debug.log */
define(‘WP_DEBUG_LOG’, true);

/** Hiển thị các lỗi và warnings */
define(‘WP_DEBUG_DISPLAY’, true);
@ini_set(‘display_errors’,1);

Magento
– Cấu hình trong phần quản lý: Admin >> Configuration >> Developer >> Log Settings >> Enabled = Yes
– Phân quyền 777 cho folder var/log để lưu log tại 2 file sau:

var/log/system.log
var/log/exception.log

4. Kiểm tra thông báo lỗi

– Khi sử dụng ngồn ngữ PHP để lập trình website (hoặc mã nguồn có sẵn) thì thường mã nguồn đó chỉ chạy tốt trên một môi trường PHP nhất định (phổ biến nhất là PHP 5.2, PHP 5.3), khi chạy trên môi trường Hosting có phiên bản PHP không phù hợp thì các hàm PHP trong mã nguồn website sẽ không còn được hỗ trợ và hiển thị một số lỗi dạng như sau:

Your server is running PHP version 5.1.6 but WordPress 3.8.2 requires at least 5.2.4.
Undefined variable: xxx in \home\userhosting\public_html\path-to-file\abc.php on line 12
Fatal error: Call to undefined method xxx
Deprecated: Assigning the return value of new by reference is deprecated in xxx on line 136

– Tại bước cấu hình 3.1 Cấu hình Hosting nếu bật tùy chọn log_errors = On thì hệ thống sẽ tự sinh file thông báo lỗi error_log tại đường dẫn sau: /home/username/public_html/error_log.

– Có thể kiểm tra file này để xem chi tiết thông báo lỗi.

– Ngoài ra tùy thuộc vào cấu hình của từng mã nguồn để kiểm tra file thông báo lỗi khác nếu có.

5. Xử lý lỗi

– Để xử lý lỗi sai phiên bản PHP có thể dùng cách thay đổi mã nguồn (sử dụng hàm khác) hoặc thay đổi PHP version trên Hosting, đối với Hosting tại Vinahost có thể thao tác một cách dễ dàng như sau:

– Kiểm tra lại thao tác đổi phiên bản PHP đã thành công hay chưa bằng cách tạo một file info.php trong thư mục gốc của website (thư mục /home/username/public_html) có nội dung như sau:
<?php phpinfo(); ?>
Sau đó truy cập trực tiếp bằng trình duyệt thông qua đường dẫn http://your-websites.com/info.php

Tham khảo:

– http://codex.wordpress.org/Debugging_in_WordPress
– https://wiki.magento.com
– http://docs.joomla.org/J3.x:Global_configuration
– http://php.net/manual/en/errorfunc.constants.php

Chúc quý khách thực hiện thành công!

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST

>> SERVER – COLOCATION – CDN

>> CLOUD – VPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

>> SSL – LICENSE

Đánh giá bài viết
Was this article helpful?
Đánh giá
Đánh giá bài viết
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận