Khắc phục lỗi “PHP Missing MySQL Extension” WordPress

4 tháng ago, Hướng dẫn WordPress, 1 Views
Khắc phục lỗi “PHP Missing MySQL Extension” WordPress

Khắc phục lỗi “PHP Missing MySQL Extension” trong WordPress

Lỗi “PHP Missing MySQL Extension” (Thiếu Extension MySQL của PHP) là một trong những lỗi phổ biến nhất mà người dùng WordPress có thể gặp phải. Lỗi này xuất hiện khi website của bạn cố gắng kết nối với cơ sở dữ liệu MySQL nhưng PHP không có extension (mở rộng) cần thiết để thực hiện việc này. Khi gặp lỗi này, website của bạn sẽ không thể truy xuất dữ liệu từ cơ sở dữ liệu, dẫn đến việc hiển thị trang trắng, thông báo lỗi hoặc các vấn đề nghiêm trọng khác. Bài viết này sẽ hướng dẫn bạn cách xác định nguyên nhân và khắc phục lỗi “PHP Missing MySQL Extension” một cách chi tiết.

Nguyên nhân gây ra lỗi

Có nhiều nguyên nhân có thể dẫn đến lỗi “PHP Missing MySQL Extension”, trong đó phổ biến nhất là:

  • **Extension MySQL chưa được cài đặt hoặc kích hoạt:** Đây là nguyên nhân phổ biến nhất. PHP cần một extension đặc biệt để giao tiếp với cơ sở dữ liệu MySQL. Nếu extension này chưa được cài đặt hoặc chưa được kích hoạt trong cấu hình PHP, lỗi sẽ xảy ra.
  • **Phiên bản PHP không tương thích:** Một số phiên bản PHP cũ có thể không hỗ trợ các extension MySQL mới nhất hoặc sử dụng các tên extension khác nhau.
  • **Cấu hình PHP bị lỗi:** Các file cấu hình PHP (ví dụ: php.ini) có thể bị chỉnh sửa sai hoặc bị hỏng, dẫn đến việc extension MySQL không được load đúng cách.
  • **Vấn đề với server web:** Trong một số trường hợp, lỗi có thể do vấn đề với server web (ví dụ: Apache, Nginx) hoặc hệ điều hành.
  • **Nâng cấp PHP không đúng cách:** Việc nâng cấp phiên bản PHP mà không thực hiện các bước cấu hình cần thiết có thể dẫn đến việc thiếu extension MySQL.

Xác định lỗi

Để xác định chắc chắn lỗi có phải do thiếu extension MySQL hay không, bạn có thể thực hiện các bước sau:

1. **Kiểm tra trang thái WordPress:** Truy cập trang quản trị WordPress (wp-admin). Nếu bạn thấy thông báo lỗi liên quan đến cơ sở dữ liệu hoặc không thể truy cập trang quản trị, có khả năng cao là do lỗi MySQL.
2. **Xem nhật ký lỗi PHP (PHP Error Log):** Nhật ký lỗi PHP ghi lại các lỗi xảy ra trong quá trình chạy PHP. Bạn có thể tìm thấy nhật ký này trong thư mục logs của server web hoặc trong bảng điều khiển của hosting. Tìm kiếm các lỗi liên quan đến “MySQL”, “mysqli” hoặc “pdo_mysql”.
3. **Sử dụng hàm phpinfo():** Tạo một file PHP đơn giản (ví dụ: info.php) với nội dung sau: “. Lưu file này trên server web và truy cập nó qua trình duyệt (ví dụ: yourdomain.com/info.php). Tìm kiếm thông tin về các extension MySQL trong trang phpinfo(). Nếu bạn không thấy các extension này, nghĩa là chúng chưa được cài đặt hoặc kích hoạt.

Các phương pháp khắc phục lỗi

Dưới đây là các phương pháp khắc phục lỗi “PHP Missing MySQL Extension” theo thứ tự từ đơn giản đến phức tạp hơn:

1. Kiểm tra và kích hoạt extension MySQL

Đây là bước đầu tiên và quan trọng nhất. Hãy kiểm tra xem extension MySQL (thường là `mysqli` hoặc `pdo_mysql`) đã được cài đặt và kích hoạt hay chưa.

* **Trên cPanel:** Đăng nhập vào cPanel của bạn. Tìm mục “Select PHP Version” hoặc “MultiPHP Manager”. Chọn phiên bản PHP bạn đang sử dụng cho website WordPress. Đảm bảo rằng extension `mysqli` (hoặc `pdo_mysql`) được chọn (tích dấu). Lưu các thay đổi.
* **Trên DirectAdmin:** Đăng nhập vào DirectAdmin. Tìm mục “Select PHP Version”. Chọn phiên bản PHP bạn đang sử dụng. Đảm bảo rằng extension `mysqli` (hoặc `pdo_mysql`) được chọn. Lưu các thay đổi.
* **Trên các control panel khác:** Quy trình có thể khác nhau tùy thuộc vào control panel bạn sử dụng. Tuy nhiên, nguyên tắc chung là tìm mục quản lý phiên bản PHP và đảm bảo extension MySQL được kích hoạt.

Nếu bạn không tìm thấy mục quản lý phiên bản PHP, hãy liên hệ với nhà cung cấp hosting của bạn để được hỗ trợ.

2. Chỉnh sửa file php.ini

Nếu extension MySQL đã được cài đặt nhưng chưa được kích hoạt, bạn cần chỉnh sửa file `php.ini` để kích hoạt nó.

1. **Xác định vị trí file php.ini:** Sử dụng hàm `phpinfo()` (như đã hướng dẫn ở trên) để tìm vị trí của file `php.ini` đang được sử dụng.
2. **Chỉnh sửa file php.ini:** Mở file `php.ini` bằng một trình soạn thảo văn bản. Tìm các dòng sau (hoặc tương tự):
* `;extension=mysqli`
* `;extension=pdo_mysql`
3. **Bỏ dấu chấm phẩy (`;`) ở đầu các dòng này để kích hoạt extension:**
* `extension=mysqli`
* `extension=pdo_mysql`
4. **Lưu file php.ini và khởi động lại server web:** Sau khi lưu các thay đổi, bạn cần khởi động lại server web (Apache, Nginx, etc.) để các thay đổi có hiệu lực.

**Lưu ý:** Việc chỉnh sửa file `php.ini` có thể phức tạp và nguy hiểm nếu bạn không quen thuộc. Sao lưu file `php.ini` trước khi chỉnh sửa để có thể khôi phục nếu có lỗi xảy ra.

3. Cài đặt extension MySQL (nếu chưa có)

Nếu extension MySQL chưa được cài đặt, bạn cần cài đặt nó.

* **Trên Linux (Sử dụng apt):**
“`bash
sudo apt update
sudo apt install php-mysql (hoặc php[your_php_version]-mysql)
sudo systemctl restart apache2 (hoặc nginx)
“`
* **Trên Linux (Sử dụng yum):**
“`bash
sudo yum install php-mysql (hoặc php[your_php_version]-mysql)
sudo systemctl restart httpd (hoặc nginx)
“`
* **Trên Windows (Sử dụng XAMPP, WAMP, etc.):**
Kiểm tra lại cài đặt XAMPP/WAMP của bạn. Đảm bảo rằng extension MySQL đã được chọn trong quá trình cài đặt. Nếu chưa, bạn có thể cài đặt lại XAMPP/WAMP hoặc cài đặt riêng lẻ extension MySQL từ trang web của XAMPP/WAMP.

Thay thế `[your_php_version]` bằng phiên bản PHP bạn đang sử dụng (ví dụ: `php7.4`, `php8.0`).

4. Kiểm tra phiên bản PHP

Đảm bảo rằng phiên bản PHP bạn đang sử dụng tương thích với WordPress và các extension MySQL. WordPress khuyến nghị sử dụng phiên bản PHP 7.4 trở lên. Nếu bạn đang sử dụng phiên bản PHP quá cũ, hãy nâng cấp lên phiên bản mới hơn.

5. Liên hệ với nhà cung cấp hosting

Nếu bạn đã thử tất cả các phương pháp trên mà vẫn không khắc phục được lỗi, hãy liên hệ với nhà cung cấp hosting của bạn. Họ có thể có các công cụ hoặc kiến thức chuyên môn để giúp bạn xác định và khắc phục lỗi. Cung cấp cho họ thông tin chi tiết về lỗi, các bước bạn đã thử và các kết quả bạn nhận được.

Các bước phòng ngừa

Để tránh gặp phải lỗi “PHP Missing MySQL Extension” trong tương lai, bạn nên thực hiện các biện pháp phòng ngừa sau:

  • **Luôn cập nhật phiên bản PHP:** Sử dụng phiên bản PHP mới nhất được WordPress hỗ trợ.
  • **Kiểm tra các extension PHP sau khi nâng cấp:** Sau khi nâng cấp phiên bản PHP, hãy kiểm tra lại xem tất cả các extension cần thiết (bao gồm MySQL) đã được cài đặt và kích hoạt hay chưa.
  • **Sao lưu file php.ini trước khi chỉnh sửa:** Trước khi thực hiện bất kỳ thay đổi nào đối với file `php.ini`, hãy sao lưu file này để có thể khôi phục nếu có lỗi xảy ra.
  • **Sử dụng môi trường staging để thử nghiệm:** Trước khi thực hiện các thay đổi lớn trên website trực tiếp, hãy thử nghiệm trên môi trường staging để đảm bảo rằng mọi thứ hoạt động bình thường.

Kết luận

Lỗi “PHP Missing MySQL Extension” là một lỗi phổ biến nhưng có thể khắc phục được. Bằng cách thực hiện các bước được hướng dẫn trong bài viết này, bạn có thể xác định nguyên nhân và khắc phục lỗi một cách hiệu quả, đảm bảo website WordPress của bạn hoạt động trơn tru. Nếu bạn vẫn gặp khó khăn, đừng ngần ngại liên hệ với nhà cung cấp hosting của bạn để được hỗ trợ.