【发布时间】:2015-05-21 14:07:34
【问题描述】:
两天前,我开始使用 Symfony 编写一个 web 应用程序。现在,我正在尝试使用 Doctrine 来保存一个新用户(我已经使用命令 php app/console doctrine:generate:entities 在我的数据库中创建了一个实体和“链接”表)。
当我在订阅表单上使用 POST HTTP 请求时,Symfony 告诉我:
找不到驱动程序
500 内部服务器错误 - PDOException
我在 Google 和这里找到了很多解决方案,但都没有奏效:/
php -m 命令给了我:
...
PDO
pdo_mysql
...
我不明白为什么这不起作用,因为 Doctrine 可以生成用户实体并连接到 mysql 数据库(因为它在其中创建了一个名为“用户”的表)。
phpinfo() 告诉我“PDO 驱动程序”“没有价值”。我想这就是我遇到问题的原因。
另外,它告诉我:
配置文件(php.ini)路径:/etc/php5/cli
加载的配置文件:/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 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20100525/php_mysql.so' - /usr/lib/php5/20100525/php_mysql.so:无法打开共享对象文件:没有这样的第 0 行 Unknown 中的文件或目录
PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20100525/php_mysqli.so' - /usr/lib/php5/20100525/php_mysqli.so:无法打开共享对象文件:没有这样的第 0 行 Unknown 中的文件或目录
PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20100525/php_pdo_mysql.so' - /usr/lib/php5/20100525/php_pdo_mysql.so:无法打开共享对象文件:没有这样的第 0 行 Unknown 中的文件或目录
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 驱动程序应该在哪里?我想我错过了什么?
【问题讨论】:
-
确保扩展名在 php.ini 中注册,用于您的 Web 服务器以及命令行。命令行和 apache/php-fpm/cgi 可能有不同的 php.ini 配置文件。
-
用 并浏览到它。这将帮助您确认@JakubZalas 的建议。
-
命令行“php --ini”产生了什么?
-
你找到答案了吗?如果是这样,我很想知道,因为我遇到了同样的问题。
标签: mysql symfony pdo doctrine