我见过很多关于这个错误的话题,但我认为我的情况是具体的。事情是这样:
我最初在我的Ubuntu服务器上安装了PHP5.5.9。为了安装最新的,我不得不将PHP升级到5.6。我使用this guide更新。我还有PostgreSQL 9.3。现在,phpinfo告诉我,我仍然安装了PHP5.5.9。然而,php -v告诉我我有PHP5.6。我已经成功地安装了Laravel,并且我能够连接到我的网页上的数据库(我可以从我的表中显示字段)。但是,当我试图在控制台中执行php artisan migrate时,我会得到以下错误:
[PDOException]
could not find driver这很奇怪,因为我之前在PHP5.5.9上安装了pgsql驱动程序,在php.ini中取消注释的php.ini和连接到DB在我的网页上运行良好。
我认为问题在于我的服务器上有两个不同的php5版本:我的/etc文件夹中有文件夹/etc和php/5.6,它们有不同的配置。我尝试过删除和安装php5-pgsql包,但它似乎安装在以前的PHP版本上。我的/usr/lib文件夹中还有两个不同的文件夹。命令php -i | grep -i pdo不会在控制台中显示已安装的pgsql驱动程序。
有办法解决这个问题吗?我认为这是因为如果版本冲突。
发布于 2016-10-12 14:51:58
这里不仅有php/php 5包,而且还有libriache2-mod-php包。除非您在mod_cgi中使用PHP2-mod-php包,否则您也需要更新包libasache2-mod-php,以便在您的web服务器中具有适当的PHP。
正如您已经注意到的,有几个PHP配置目录和文件。如果您也想在版本5.6中使用Postgres和PDO,则必须在两个配置文件中启用它。
在我的系统(Ubuntu16.04)上,有子目录/etc/php/7.0/cli/conf.d和/etc/php/7.0/apache2/conf.d,它们都包含20-pdo_mysql.ini
;;php mysql模块的配置 ;priority=20 extension=pdo_mysql.so
因此,您可以并且必须分别为webserver和/或cli以及每个版本配置Postgres和PDO。
https://stackoverflow.com/questions/39993289
复制相似问题