Symfony2:Doctrine"找不到驱动程序"

时间:2015-03-18 16:51:56

标签: mysql symfony pdo doctrine

两天前,我开始用Symfony编写一个webapp。现在,我正在尝试使用Doctrine来保存新用户(我已经使用命令php app/console doctrine:generate:entities在我的数据库中创建了一个实体和'链接'表)。

当我在我的订阅表单上使用POST HTTP请求时,Symfony告诉我:

  

无法找到驱动程序

     

500内部服务器错误 - PDOException

我在谷歌和这里找到了很多解决方案,但没有一个有效:/

命令php -m给了我:

  

...

     

PDO

     

PDO_MYSQL

     

...

我不明白为什么这不起作用,因为Doctrine可以生成用户实体并连接到mysql数据库(因为它创建了一个名为'User'的表)。

phpinfo()告诉我“PDO驱动程序”“没有价值”。我猜这就是为什么我有一些问题。

另外,它告诉我:

  

配置文件(php.ini)路径:/ etc / php5 / cli

     

已加载的配置文件:/etc/php5/cli/php.ini

我在文件“/etc/php5/cli/php.ini”中添加了以下行,并使用“/etc/init.d/apache2 restart”命令重新启动了apache服务器,但它没有改变任何内容= / < / p>

  

延长= php_mysql.so

     

延长= php_mysqli.so

     

延长= php_pdo_mysql.so

     

延长= pdo.so

“php --ini”现在产生:

  

PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20100525/php_mysql.so' - /usr/lib/php5/20100525/php_mysql.so:无法打开共享对象文件:没有这样的第0行的未知文件或目录

     

PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20100525/php_mysqli.so' - /usr/lib/php5/20100525/php_mysqli.so:无法打开共享对象文件:没有这样的第0行的未知文件或目录

     

PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20100525/php_pdo_mysql.so' - /usr/lib/php5/20100525/php_pdo_mysql.so:无法打开共享对象文件:没有这样的第0行的未知文件或目录

     

PHP警告:模块“PDO”已在第0行的“未知”中加载

     

配置文件(php.ini)路径:/ etc / php5 / cli

     

已加载的配置文件:/etc/php5/cli/php.ini

     

在/etc/php5/cli/conf.d

中扫描其他.ini文件      

解析了其他.ini文件:/etc/php5/cli/conf.d/10-pdo.ini,

     

/etc/php5/cli/conf.d/20-curl.ini,

     

/etc/php5/cli/conf.d/20-gd.ini,

     

/etc/php5/cli/conf.d/20-mysql.ini,

     

/etc/php5/cli/conf.d/20-mysqli.ini,

     

/etc/php5/cli/conf.d/20-pdo_mysql.ini,

     

/etc/php5/cli/conf.d/20-pdo_pgsql.ini,

     

/etc/php5/cli/conf.d/20-pdo_sqlite.ini,

     

/etc/php5/cli/conf.d/20-pgsql.ini,

     

/etc/php5/cli/conf.d/20-sqlite3.ini

应该在哪里找到pdo司机?我想我错过了什么?

1 个答案:

答案 0 :(得分:1)

最有可能的问题是由于没有为网络服务器的PHP启用pdo。 PHP可以为CLI和Web服务器提供不同的配置。您的所有输出都来自PHP CLI。但是您的CLI php.ini很好,这就是控制台工作的原因。这是没有正确设置的CGI或FPM。

您需要找到CGI或FPM php.ini(位置可能会根据您的设置而改变 - 有关详细信息,请参阅this answer)并确保在此处启用您要使用的PDO和PDO驱动程序。