Tôi đã sửa lỗi này trên Debian 6. Thông thường tôi mới cài đặt php5-common
gói. Sau khi cài đặt, bạn phải khởi động lại máy chủ web của mình (apache hoặc nginx tùy thuộc vào cái nào bạn đã cài đặt). Sau đó, tôi chỉ thực hiện một lsof
quá trình apache id ( lsof -p process_id
) như sau:
sudo lsof -p 1399 #replace 1399 by your apache process id
apache2 1399 root mem REG 254,2 80352 227236 /usr/lib/php5/20090626/xmlrpc.so
apache2 1399 root mem REG 254,2 166496 227235 /usr/lib/php5/20090626/suhosin.so
apache2 1399 root mem REG 254,2 31120 227233 /usr/lib/php5/20090626/pdo_mysql.so
apache2 1399 root mem REG 254,2 100776 227216 /usr/lib/php5/20090626/pdo.so
apache2 1399 root mem REG 254,2 135864 227232 /usr/lib/php5/20090626/mysqli.so
Như bạn có thể thấy ở trên, các mô-đun được cài đặt trên một đường dẫn tệp không được biết hoặc được hướng dẫn bởi đường dẫn thư viện chung: / usr/lib/php5/20090626/
. Đối với cài đặt của bạn, nó có thể khác nhau, nhưng chỉ có đường dẫn của pdo_mysql.so, pdo.so, mysqli.so. Vì vậy, đây là lý do tại sao Drupal hoặc bất kỳ công cụ php nào khác không thể tìm thấy thư viện và hiển thị lỗi đó:PDOException: could not find driver
Tôi chỉ không biết tại sao nó được cài đặt trên một con đường kỳ lạ như vậy, đối với tôi nó chỉ là một lỗi trong các kịch bản cài đặt gói thư viện trong debian 6. Tôi giải quyết vấn đề này bằng cách tạo ra một biểu tượng cho tất cả các file dưới /usr/lib/php5/20090626/
để
/usr/lib/php5/
bằng lệnh này:
ln -s /usr/lib/php5/20090626/* /usr/lib/php5/
php.ini' file and uncomment
phần mở rộng của bạn = php_pdo_mysql.dll Tệp. The path to your
php.ini` có thể được tìm thấy bằng cách xem phpinfo () của bạn.