我刚刚安装了Debian Lenny与Apache, MySQL和PHP,我收到一个PDOException无法找到驱动程序。

这是它所引用的特定代码行:

$dbh = new PDO('mysql:host=')。DB_HOST。”;dbname = '。Db_name, db_user, db_pass)

DB_HOST、DB_NAME、DB_USER和DB_PASS是我已经定义的常量。它在生产服务器(以及我之前的Ubuntu server设置)上运行良好。

这与我的PHP安装有关吗?

在网上搜索也没有帮助,我得到的都是专家交流和例子,但没有解决方案。


当前回答

代码中的dsn显示您正在尝试连接mysql驱动程序。您的错误消息表明该驱动程序不可用。

检查你的服务器上是否安装了mysql扩展。

在Ubuntu/Debian中,你可以用以下方法检查包:

dpkg --get-selections | grep php | grep mysql

如果没有php5-mysql包,请安装。

在Ubuntu/Debian中,你可以使用:

PHP5: sudo apt-get install PHP5 -mysql PHP7: sudo apt-get安装php7.0-mysql

最后,为了让它工作,你需要重新启动你的web服务器:

Apache: sudo /etc/init.d/apache2 restart Nginx: sudo /etc/init.d/nginx restart

其他回答

在Ubuntu上执行

sudo apt-get install php5-mysql

我在我的Debian 6上修复了这个问题。 通常我只是安装了php5-common package。安装后,你必须重新启动你的web服务器(apache或nginx取决于你安装的哪个)。 然后我只是在apache进程id (lsof -p process_id)上做一个lsof,如下所示:

sudo lsof -p 1399   #replace 1399 by your apache process id
apache2 1399 root  mem    REG  254,2    80352 227236 /usr/lib/php5/20090626/xmlrpc.so
apache2 1399 root  mem    REG  254,2   166496 227235 /usr/lib/php5/20090626/suhosin.so
apache2 1399 root  mem    REG  254,2    31120 227233 /usr/lib/php5/20090626/pdo_mysql.so
apache2 1399 root  mem    REG  254,2   100776 227216 /usr/lib/php5/20090626/pdo.so
apache2 1399 root  mem    REG  254,2   135864 227232 /usr/lib/php5/20090626/mysqli.so

正如您在上面看到的,模块安装在一个不知道的文件路径上,或者由公共库路径引导:/usr/lib/php5/20090626/。对于您的安装,它可能不同,但只有pdo_mysql的路径。所以,pdo。所以,mysqli.so。所以,这就是为什么Drupal或其他php引擎找不到这个库,并显示错误:PDOException: could not find driver

我只是不知道为什么它被安装在这么奇怪的路径上,对我来说,这只是debian 6中库包安装脚本中的一个错误。 我通过为/usr/lib/php5/20090626/ to下的所有文件创建一个符号来解决这个问题 /usr/lib/php5/

在s /usr/lib/php5/20090626/* /usr/lib/php5/

在我的情况下(Windows XP + Apache2.2 + PHP 5.4.31),我改变了PHPIniDir在httpd.conf来解决这个问题:

来自:

"C:\php5\" 

to:

"C:/php5/"

在php.ini中,extension=php_pdo_mysql.dll并保存。 不要忘记重新启动xampp Apache和Mysql。

同样的问题,因为我忘记进入我的虚拟机。如果我像这样进入我的本地目录:

cd /www/homestead/my_project
php artisan migrate

这个错误就会出现。但它在我的虚拟机上运行

cd ~/homestead
vagrant ssh   
cd /www/homestead/my_project
php artisan migrate