Классы ZEND не загружаются на производственный сервер - PullRequest
0 голосов
/ 17 марта 2011

Я переместил сайт с общего сервера на выделенный сервер, но сайт работает неправильно. Я получаю сообщение об ошибке «Неустранимая ошибка: необработанное исключение« Zend_Db_Adapter_Exception »с сообщением« Для этого адаптера требуется расширение PDO, но расширение не загружено »в«;

Результат для:

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

* +1015 * Спасибо, Лалита

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

В первой строке вашего phpinfo() мы можем прочитать:

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

Ну, это говорит само за себя.

Если вы скомпилировали PHP самостоятельно, я действительно советую вам использовать для этого менеджер пакетов (aptitude, yum и т. Д.), Это облегчит обновление вашей системы и позволит вам не собирать ее вручную. каждый раз, когда вам нужно обновить PHP.
Делайте это, только если у вас есть очень веские причины .

1 голос
/ 17 марта 2011

Из файла you info.php ... Настроить команду './configure' '--disable-pdo' Проще говоря, php не был скомпилирован с учетом pdo.

Один из вариантов - попытаться загрузить расширения вручную в public / index.php в начале вашего скрипта (я не ожидаю, что он будет работать, но стоит попробовать):

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

PHP: dl - загружает расширение PHP во время выполнения

...