2011-03-17 43 views
0

我將網站從共享服務器轉移到專用服務器,但該網站無法正常工作。我得到錯誤爲「致命錯誤:未捕獲的異常'Zend_Db_Adapter_Exception'帶有消息'PDO擴展是此適配器所必需的,但擴展未加載'in」;生產服務器上無法加載ZEND類

結果爲:

if (extension_loaded('pdo') and extension_loaded('pdo_mysql')) { 
     print "Success"; 
     } else { 
     print "Failure"; 
     } 

也是假的。

------索引文件------

<?php 

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); 

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'), 
    get_include_path(), 
))); 

/** Zend_Application */ 
require_once 'Zend/Application.php'; 

// Create application, bootstrap, and run 
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini' 
); 
$application->bootstrap() 
      ->run(); 

網站的鏈接:http://voxsun.com 的phpinfo網站:http://voxsun.com/public/info.php

感謝, 拉利特

+0

不想陳述顯而易見,[PDO擴展](http://uk2.php.net/manual/en/pdo.installation.php)似乎在您的服務器上被禁用,並且您的腳本需要它。那麼,你需要啓用它? – MrWhite 2011-03-17 14:50:29

+0

我討厭神祕的錯誤信息......等等。 – 2011-03-17 16:26:55

+0

屬於ServerFault。 – markus 2011-03-19 21:39:16

回答

1

從你是info.php ... 配置命令'./configure''--disable-pdo'所以簡單點說,php並沒有用pdo來編譯。

一個辦法是嘗試和你的腳本manualy公共/ index.php文件在開始裝載的擴展(我不希望它的工作,但它值得給它一個嘗試):

dl('pdo.so'); 
dl('pdo_mysql.so'); 

PHP: dl - Loads a PHP extension at runtime

2

在你phpinfo()的第一線,我們可以讀到:

'./configure' '--disable-pdo' 

嗯,這是不言自明的。

如果你自己編譯PHP,我真的建議你使用你的軟件包管理器來做到這一點(aptitude,yum等),它會緩解你的系統升級,並避免你每次編譯它時手需要更新PHP。
只有當你有很好的理由