2011-03-17 41 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。
只有当你有很好的理由