mysql - Symfony2 : Doctrine "could not find driver"

标签 mysql symfony pdo doctrine

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

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

could not find driver

500 Internal Server Error - PDOException

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

命令 php -m 给我:

...

PDO

pdo_mysql

...

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

phpinfo() 告诉我“PDO 驱动程序”“没有值(value)”。我想这就是我遇到一些问题的原因。

另外,它告诉我:

Configuration File (php.ini) Path : /etc/php5/cli

Loaded Configuration File : /etc/php5/cli/php.ini

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

extension=php_mysql.so

extension=php_mysqli.so

extension=php_pdo_mysql.so

extension=pdo.so

“php --ini”现在产生:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/php_mysql.so' - /usr/lib/php5/20100525/php_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/php_mysqli.so' - /usr/lib/php5/20100525/php_mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/php_pdo_mysql.so' - /usr/lib/php5/20100525/php_pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning: Module 'PDO' already loaded in Unknown on line 0

Configuration File (php.ini) Path: /etc/php5/cli

Loaded Configuration File: /etc/php5/cli/php.ini

Scan for additional .ini files in: /etc/php5/cli/conf.d

Additional .ini files parsed: /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 驱动应该放在哪里?我想我错过了什么?

最佳答案

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

您需要找到 CGI 或 FPM php.ini(位置可能会根据您的设置而变化 - 请参阅 this answer 了解更多信息)并确保您要使用的 PDO 和 PDO 驱动程序在那里启用。

关于mysql - Symfony2 : Doctrine "could not find driver",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29128009/

相关文章:

php - 转换从数据库中检索到的日期时间

php - 从 laravel 5.1 中的多个表中获取多行数据

php - 在 PDO 查询的 where 子句中处理可能的空值

php使用next按钮限制查询pdo

php - Laravel 5.4 集合 - 如何通过索引从集合中获取数据

mysql - 只返回最后一行 LEFT JOIN

symfony - gitflow 开发期间下一个主要升级文件是什么时候?

Symfony2/Twig - 需要将 |nl2br 用于空间和 | Twig 中的原始博客正文,可以这样做吗?

php - Symfony 2 - 基于实体关联的动态表单生成

php - 在一个循环中执行两条 PDO 语句