NỘI DUNG
Sửa lỗi Class “PDO” not found trên Cloudlinux cPanel nhanh chóng
Mô tả lỗi “Class PDO not found”
Khi chạy lệnh Artisan trong Laravel, ví dụ:
php artisan config:clearHệ thống trả về thông báo lỗi:
Error
Class "PDO" not found
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:115Lỗi này xảy ra tại file:
vendor/laravel/framework/src/Illuminate/Database/Connection.php
Nguyên nhân trực tiếp là do Laravel sử dụng PDO (PHP Data Objects) để kết nối cơ sở dữ liệu, nhưng môi trường PHP hiện tại không tìm thấy class PDO, tức là: PHP CLI trên server chưa được cài hoặc chưa kích hoạt extension PDO.
Trên hệ thống cPanel CloudLinux, lỗi này thường xuất hiện khi:
- PHP chạy website thì có PDO
- Nhưng PHP trong SSH (CLI) lại thiếu PDO
- Hoặc môi trường CageFS chưa được đồng bộ lại module PHP
Điều này dẫn đến tình trạng:
- Điều này dẫn đến tình trạng:
- Nhưng lệnh php artisan luôn báo lỗi và không thể thao tác cache, config, migrate…
Cách fix lỗi “Class PDO not found” trên cPanel CloudLinux
Để xử lý triệt để lỗi này, chỉ cần thực hiện đúng 3 lệnh sau với quyền root:
Bước 1: Cài lại ODBC/PDO cho Alt-PHP
/opt/alt/alt-php-config/install_odbcLệnh này sẽ thực hiện:
- Cài bổ sung driver ODBC cho CloudLinux
- Đồng thời kích hoạt lại các module liên quan đến PDO cho Alt-PHP
Bước 2: Đồng bộ lại môi trường CageFS
cagefsctl --force-update
cagefsctlLệnh này sẽ thực hiện:
- Cập nhật lại toàn bộ môi trường PHP trong CageFS
- Mount lại filesystem CageFS
Bước 3: Kiểm tra lại PDO sau khi fix
Cuối cùng, chạy lại Artisan. Nếu không còn báo lỗi có nghĩa bạn đã fix hoàn tất.
php artisan config:clear
php artisan cache:clear
php artisan optimize:clear
Lỗi “Class PDO not found” trong Laravel không phải lỗi mã nguồn, mà là lỗi môi trường PHP trên server, đặc biệt hay gặp trên hệ thống cPanel CloudLinux sử dụng CageFS và Alt-PHP.
