2016-07-05 2 views
2

Во время развертывания проекта laravel на Centos я получил эту ошибку.Laravel: PDO Class не найдена ошибка

PHP Fatal error: Class 'PDO' not found in /var/www/html/<laravel_project_name>/config/database.php on line 16 

У меня есть расширение pdo с редактированием файла php.ini.

extension=pdo.so 
extension=pdo_sqlite.so 
extension=pdo_mysql.so 
extension=sqlite.so 

И когда я пытаюсь выполнить php -v, я получил следующую ошибку.

PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' - /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0 

Я перезапустил httpd-сервер после редактирования файла php.ini. Пожалуйста, помогите мне исправить эту ошибку. С уважением.

ответ

2

Ошибка, которую вы получаете, означает, что в ваших конфигурационных файлах php (обычно php.ini) есть расширение = ... или zend_extension = ..., которое пытается загрузить это расширение, но не может загружать файлы для либо потому, что он не существует, либо у него нет прав доступа к нему.

В этом случае вы установили все ниже в вашем php.ini файле:

extension=pdo.so 
extension=pdo_sqlite.so 
extension=sqlite.so 
extension=pdo_mysql.so 

Но разве они на самом деле были установлены?

Учитывая вы используете CentOS, попробуйте выполнить следующую команду, чтобы установить PDO:

yum install php-pdo php-mysqli

Если он уже установлен, то, пожалуйста, проверьте разрешения на /usr/lib64/php/modules/pdo_mysql.so были установлены соответствующим образом.

1

Line 16 из database.php это

'fetch' => PDO::FETCH_CLASS 

Это означает, что PDO класс не существует.

Вы можете установить PDO и перезапустить при необходимости этот путь

yum install php-pdo 

service httpd restart 

Это говорит проверить эту ссылку http://php.net/manual/en/pdo.installation.php

Установка ПДО в системах Unix

PDO and the PDO_SQLITE driver is enabled by default as of PHP 5.1.0. You may need to enable the PDO driver for your database of choice; consult the documentation for database-specific PDO drivers to find out more about that. 

Чтобы создать экземпляр PDO в laravel вы можете сделать это способом

$pdo = DB::connection()->getPdo(); 
Смежные вопросы