在Centos上部署laravel项目期间,我遇到了这个错误。
PHP Fatal error: Class 'PDO' not found in /var/www/html/<laravel_project_name>/config/database.php on line 16
我已经通过编辑php.ini文件启用了pdo扩展。
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
我在编辑php.ini文件后重启了httpd服务器。 请帮我修复此错误。 问候。
答案 0 :(得分:2)
你得到的错误意味着你的php配置文件(通常是php.ini)中有一个extension = ...或zend_extension = ...行试图加载该扩展但它无法加载它的文件,因为它不存在或者没有访问权限。
在这种情况下,您已在dtstart dtend count(*)
July, 04 2016 19:13:00 2016-07-04 19:13:29 1
July, 04 2016 19:13:30 2016-07-04 19:14:24 2
July, 04 2016 19:14:25 2016-07-04 19:14:38 1
July, 04 2016 19:14:39 2016-07-04 19:20:05 2
文件中设置了以下所有内容:
php.ini
但实际上他们已经安装了吗?
鉴于您使用的是CentOS,请尝试运行以下命令来安装extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so
:
PDO
如果已安装,请检查yum install php-pdo php-mysqli
的权限是否已正确设置。
答案 1 :(得分:1)
database.php的第16行是这个
'fetch' => PDO::FETCH_CLASS
这意味着PDO类不存在。
如果需要,您可以安装pdo并重新启动
yum install php-pdo
service httpd restart
那说检查此链接http://php.net/manual/en/pdo.installation.php
在Unix系统上安装PDO
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.
要在laravel中创建pdo实例,您可以这样做
$pdo = DB::connection()->getPdo();