[2016/09/01] Sử dụng phiên bản PHP không hỗ trợ Session cho WordPress

Khái niệm Session trong PHP: http://php.net/manual/en/book.session.php

Mặc định, khi Compile PHP sẽ đi kèm Session.

Việc sử dụng Session có một nhược điểm, thuật ngữ tiếng anh gọi là “Session Locking”. Nôm na là trong phiên làm việc, Session sẽ bị khóa, và các Session khác phải chờ cho tới khi Session đó hoàn thành (hoặc khi session_write_close được gọi) mới được xử lý. Vì vậy nếu có nhiều phiên Session liên tiếp thì đây chính là nơi thắt cổ chai trong toàn bộ quá trình giao tiếp giữa Server với trình duyệt.
Session Locking là nhược điểm, nhưng cũng chính là điều cần thiết để tránh hiện tượng Session bị thay đổi ngay trong quá trình đang xử lý, thuật ngữ tiếng Anh gọi là “Race Conditions”. Cũng giống như việc khóa ROW của MySQL với Table dạng MyISAM.

Nhưng với WordPress, việc PHP hỗ trợ Session là vô nghĩa. Lý do bởi trong mã nguồn của WordPress chỉ sử dụng Cookie chứ không sử dụng chút nào Session. Thậm chí việc bật Session còn làm WordPress trở nên ỳ ạch hơn, do có thể có một hay vài Session nào đó đang xử lý và việc hiển thị trang phải chờ cho tới khi Session đó được hoàn thành.
Ví dụ dễ nhận thấy là trong quá trình WordPress Update hay bật/tắt Plugin nào đó, việc chuyển trang trong WordPress sẽ phải chờ tới khi quá trình Update hoàn thành (hoặc tệ hơn là timeout).

Kết hợp với việc Server cây nhà lá vườn, điều kiện có thừa nên từ hôm nay sẽ sử dụng 1 bản PHP được Compile không hỗ trợ Session để dành riêng cho WordPress. Phiên bản PHP sử dụng là 7.0, đảm bảo hiệu năng tốt nhất và cập nhật những bản vá một cách nhanh nhất.

Sử dụng PHP không hỗ trợ Session sẽ kéo theo một số Plugin hay Theme cho WordPress không hoạt động được (hoặc ra trang ERROR nếu Enable). Trong tình huống này là Plugin WP Ajaxify Comments và Theme Enfold.
WP Ajaxify Comments là một Plugin rất hay giúp những Comments được gửi sẽ hiển thị dạng AJAX thay vì Load lại trang. Còn Enfold là một Theme rất đẹp, nhẹ và nhiều chức năng dành cho WordPress. Trong danh sách Best Seller của ThemeForest thì Enfold đứng thứ 3. Mấy hôm trước đã có ý định sử dụng Enfold cho trang Blog, và thực sự đã bắt tay vào chỉnh sửa rất nhiều thứ để hoàn thiện Enfold, nhưng nay thật tiếc nuối phải chuyển sang một Theme khác. Thực sự rất tiếc.

Để đảm bảo tính tương thích, các mã nguồn khác (như vBulletin) vẫn sẽ sử dụng bản PHP có hỗ trợ Session.