2013-10-10 35 views
6

Tôi biết có một số trường hợp của câu hỏi này trong suốt quá trình ngăn xếp nhưng tôi không tìm thấy giải pháp.Không thể cài đặt PDO trên CentOS

Tôi đang chạy CentOS với Apache và PHP 5.3

Một kịch bản .php được đem lại cho tôi lỗi này:

Fatal error: Class 'PDO' not found in ... 

Tôi chạy phpinfo(); và nơi duy nhất "PDO" tồn tại trên trang là trong dòng "Định cấu hình lệnh" '--disable-pdo'.

Tôi đã cố gắng #yum install php-pdo nhưng không có gói nào tồn tại.

Tôi cũng đã cố gắng #pecl install pdo và tôi nhận được các lỗi này ở cuối:

/root/tmp/pear/PDO/pdo_dbh.c: In function 'pdo_stmt_instantiate': 
/root/tmp/pear/PDO/pdo_dbh.c:410: error: 'zval' has no member named 'refcount' 
/root/tmp/pear/PDO/pdo_dbh.c:411: error: 'zval' has no member named 'is_ref' 
/root/tmp/pear/PDO/pdo_dbh.c: In function 'pdo_stmt_construct': 
/root/tmp/pear/PDO/pdo_dbh.c:435: error: 'zend_fcall_info' has no member named 'object_pp' 
/root/tmp/pear/PDO/pdo_dbh.c:458: error: 'zend_fcall_info_cache' has no member named 'object_pp' 
/root/tmp/pear/PDO/pdo_dbh.c: In function 'zim_PDO_setAttribute': 
/root/tmp/pear/PDO/pdo_dbh.c:752: error: 'zval' has no member named 'refcount' 
/root/tmp/pear/PDO/pdo_dbh.c: In function 'zim_PDO_getAttribute': 
/root/tmp/pear/PDO/pdo_dbh.c:818: error: 'zval' has no member named 'refcount' 
/root/tmp/pear/PDO/pdo_dbh.c: In function 'pdo_hash_methods': 
/root/tmp/pear/PDO/pdo_dbh.c:1122: warning: assignment discards qualifiers from pointer target type 
/root/tmp/pear/PDO/pdo_dbh.c:1126: warning: assignment discards qualifiers from pointer target type 
make: *** [pdo_dbh.lo] Error 1 
ERROR: `make' failed 

Sau đó trên doc php.net nó về cơ bản nói rằng gói đi kèm tiêu chuẩn trong cài đặt php từ PHP 5.1.

Tôi đã thêm dòng extension=pdo.so vào php.ini và khởi động lại Apache và sự cố vẫn tiếp diễn. Bất kỳ đề xuất?

+0

'php-pdo' là tên chính xác của gói cho CentOS. Nó có hiển thị nếu bạn tìm kiếm 'yum search php-pdo' không? –

+0

kết quả duy nhất tôi nhận được cho pda tìm kiếm yum là một loạt các gói "casenoupdown". tôi cũng chạy yum sạch tất cả và yum cập nhật gần đây – chuckieDub

+0

có lẽ đây là vấn đề của tôi http://serverfault.com/questions/511779/cant-install-php-pdo – chuckieDub

Trả lời

1

Tôi cũng gặp sự cố tương tự. Tôi đang sử dụng codeigniter và đã nhận được một lỗi "pdo_mysql.so không tìm thấy" và cố gắng tất cả mọi thứ để sửa chữa nó. Tôi phải tìm kiếm qua 10 trang đầu tiên của kết quả tìm kiếm của google cho nhiều truy vấn. Tôi đã tìm thấy hàng tấn những người có cùng vấn đề nhưng vì một lý do nào đó mà không ai trong số họ có câu trả lời/sửa chữa. Thru tất cả đọc này tôi đã học được rằng "PDO và trình điều khiển PDO_SQLITE được kích hoạt theo mặc định là của PHP 5.1.0." Điều này đã cho tôi suy nghĩ, "Có lẽ tôi nên loại bỏ phần mở rộng = pdo_mysql.so và pdo.so dòng từ php.ini của tôi! " Tôi figured php đã cố gắng để tải một phần mở rộng mà không còn ở đó kể từ khi nó được xây dựng trong bây giờ. Chắc chắn đủ, giải quyết tất cả các mess lỗi php của tôi.

PHP 5.4.31 (cli) (built: Aug 19 2014 10:38:48)
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
Server version: Apache/2.2.27 (Unix)
Server built: Aug 19 2014 10:33:30
Cpanel::Easy::Apache v3.26.5 rev9999

0

Tôi khá chắc chắn rằng bạn đang thiếu gói PHP_PDO. Cố gắng tìm các gói PDO bằng cách chạy lệnh dưới đây:

# rpm -qa| grep "pdo" 

Mine lãm php53u-PDO-5.3.26-1.ius.el5

Nếu bạn đang sử dụng php 5.3 sau đó thử

# yum install php53u-pdo 
+2

không có kết quả cho grep và cài đặt không thể tìm thấy gói. – chuckieDub

0

Tôi không biết nếu đã quá muộn để trả lời, nhưng tôi sẽ đăng nếu có ai đó phát hiện lỗi này.

Trước tiên, tôi đã cài đặt php-pdo trong Centos 7 với yum. Tôi đã xem phpinfo và nó cho thấy phần mở rộng pdo nhưng không phải pdo-mysql.

Vì vậy, nếu bạn sau đó cài đặt php-mysql (yum install php-mysql), nó sẽ tự động cài đặt phần mở rộng pdo-mysql.

Các vấn đề liên quan