PHP缺少mysql pdo驱动程序

时间:2016-08-08 22:39:59

标签: php mysql pdo symfony php-7

我正在尝试运行从源代码安装的php 7的Symfony 3应用程序,我收到了一个Missing PDO驱动程序异常。根据{{​​3}},PDO_MYSQL扩展现在是PHP核心的一部分。

Q1.a)如果我有PDO_MYSQL扩展(我必须,因为它的核心)这是否意味着我也有mysql pdo驱动程序?

Q2.b)我是否需要进一步的运行时配置以确保驱动程序得到使用?

我尝试过添加

延长= php_pdo.so

延长= php_pdo_mysql.so

到我加载的php.ini文件。

Q2.a)这些是正确的扩展名吗?我怎么能知道呢? Q2.b)我是否必须为核心php元素提供扩展引用?

最后:

Q3。如何检查我的PHP安装是否包含mysql pdo驱动程序,以及如何确保它在运行时加载?

感谢您的意见。

编辑1:我在Linux Mint上运行 编辑2:以下是我在最后看到的更多细节:

“在启动内置的php服务器时,我收到以下消息: PHP警告:PHP启动:无法加载动态库'/usr/local/lib/php/extensions/no-debug-non-zts-20151012/php_pdo.so' - / usr / local / lib / php / extensions / no -debug-non-zts-20151012 / php_pdo.so:无法打开共享对象文件:第0行的Unknown中没有这样的文件或目录 PHP警告:PHP启动:无法加载动态库'/usr/local/lib/php/extensions/no-debug-non-zts-20151012/php_pdo_mysql.so' - / usr / local / lib / php / extensions / no -debug-non-zts-20151012 / php_pdo_mysql.so:无法打开共享对象文件:第0行的“未知”中没有此类文件或目录“

此消息向我建议扩展引用不正确或扩展名不存在。我使用“dpkg -L php-mysql”,发现该软件包安装在“/ usr / share / doc / php-mysql”中,但是当我检查php-mysql目录时,我看到的只是一个更改日志和一个版权文件(显示隐藏)。这是包的真正安装位置,如果是这样,该目录中是否还有更多?

1 个答案:

答案 0 :(得分:2)

.so意味着你在Linux上 - 你是否将PHP作为一个软件包安装。您可能需要安装pdo / mysql软件包 - PHP库可能是“核心”,但不一定在主软件包中(令人困惑,但这只是意味着它不是真正提供的PEAR)。

sudo apt-get install php5-mysql

或者,如果您正在运行PHP7:

sudo apt-get install php-mysql

这应该会自动重启apache,但确保你可以这样做:

sudo service apache2 restart

php-mysql的软件包安装程序应该将.so库放在/usr/lib/php/yyyymmdd/中 - 如果你已经将PHP作为一个软件包安装,它就会在这里查看。

但是,自从您从源代码安装以来,似乎PHP正在其他地方寻找这些库。您可以创建从/usr/local/lib/php/extensions/no-debug-non-zts-20151012/到包安装库的符号链接。