两天前,我开始用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司机?我想我错过了什么?
答案 0 :(得分:1)
最有可能的问题是由于没有为网络服务器的PHP启用pdo。 PHP可以为CLI和Web服务器提供不同的配置。您的所有输出都来自PHP CLI。但是您的CLI php.ini
很好,这就是控制台工作的原因。这是没有正确设置的CGI或FPM。
您需要找到CGI或FPM php.ini
(位置可能会根据您的设置而改变 - 有关详细信息,请参阅this answer)并确保在此处启用您要使用的PDO和PDO驱动程序。