2013-10-10 94 views
6

我知道這個問題在整個stackoverflow中有幾個實例,但我沒有找到解決方案。不能在CentOS上安裝PDO

我正在用CentOS的Apache和PHP 5.3

以.php腳本給我這個錯誤:

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

我跑phpinfo();和唯一的地方「PDO」存在於網頁中「配置命令」'--disable-pdo'行。

我試過#yum install php-pdo但沒有包存在。

我也試圖#pecl install pdo,我在最後得到這些錯誤:

/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 

然後在php.net的文檔,它基本上說,包裝內附送的,因爲PHP 5.1 PHP安裝標準。

我將行extension=pdo.so添加到php.ini並重新啓動Apache,問題依然存在。有什麼建議麼?

+0

'php-pdo'是CentOS軟件包的正確名稱。如果你做'yum search php-pdo',它會顯示嗎? –

+0

我得到的唯一結果是yum search pdo是一堆「casenoupdown」包。我也跑yum乾淨所有和yum更新最近 – chuckieDub

+0

也許這是我的問題http://serverfault.com/questions/511779/cant-install-php-pdo – chuckieDub

回答

1

我也有類似的問題。我正在使用codeigniter並得到一個「pdo_mysql.so未找到」的錯誤,並嘗試一切來解決它。我必須通過谷歌搜索結果的前10頁搜索多個查詢。我發現很多人有同樣的問題,但由於某種原因,他們沒有一個答案/修復。通過所有這些閱讀,我瞭解到「PDO和PDO_SQLITE驅動程序默認情況下啓用自PHP 5.1.0開始」這讓我想到了,「也許我應該刪除擴展名= pdo_mysql.so和pdo.so來自我的php.ini!「我想,PHP試圖加載一個不再存在的擴展,因爲它現在已經內置了。果然,解決了我所有的php錯誤混亂。

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

我很確定你錯過了PHP_PDO包。嘗試通過波紋管運行命令查找PDO包:

# rpm -qa| grep "pdo" 

礦顯示php53u-PDO-5.3.26-1.ius.el5

如果你正在使用PHP 5.3,然後嘗試

# yum install php53u-pdo 
+2

沒有grep的結果,安裝程序找不到軟件包。 – chuckieDub

0

我不知道答案是否太晚,但如果有人發現此錯誤,我會發布。

首先,我在yum上安裝了php-pdo在Centos 7中。我查看了phpinfo,它顯示了pdo擴展名,但不是pdo-mysql。

因此,如果您安裝了php-mysql(yum install php-mysql),它將自動安裝pdo-mysql擴展。