Symfony3演示项目不起作用:PDO异常无法找到驱动程序(sqlite case)

时间:2016-03-21 22:15:52

标签: php sqlite pdo symfony

最近我通过命令创建了Symfony3项目:

symfony new myproject

该项目使用mysql,它工作正常。

之后我创建了演示项目来研究symfony最佳实践:

symfony demo

项目已成功创建。 Config.php显示,一切正常。 app_dev.php已在我的网络浏览器中成功打开。但是,当我尝试打开“http://localhost/app_dev.php/ru/blog/”(应用程序的公共部分)时,将出现500内部服务器错误。 /app_dev.php/ru/blog/显示:

错误讯息:

  

驱动程序中发生异常:找不到驱动程序

     

500内部服务器错误 - DriverException

     

2个链接的例外:

     

PDOException»

     

PDOException»

调用堆栈中的关键部分:

  

CRITICAL - 未捕获的PHP异常Doctrine \ DBAL \ Exception \ DriverException:“在驱动程序中发生异常:找不到驱动程序”在/ var / www / symfony_demo / vendor / doctrine / dbal / lib / Doctrine / DBAL / Driver / AbstractSQLiteDriver.php第85行

我已经阅读了有关PDO Exception的所有堆栈交换问题,但没有人帮助我......

我使用的是Ubuntu,Nginx。

安装了Mysql,sqlite,php5-sqlite,sqlite3,libsqlite3-dev。 Nginx和php5-fpm重新启动。 php.ini用于PDO Wez Furlong的SQLite 3.x驱动程序。

演示app parameters.yml:

database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: null
database_name: null
database_user: root
database_password: null
database_path: '%kernel.root_dir%/data/blog.sqlite'
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: secret_value_for_symfony_demo_application

php.ini文件:

[sqlite]
; http://php.net/sqlite.assoc-case
;sqlite.assoc_case = 0

[sqlite3]
;sqlite3.extension_dir =

我不知道,问题的原因是什么以及如何解决它。

请帮忙!

3 个答案:

答案 0 :(得分:6)

对我来说,在ubuntu工作

sudo apt-get install php5.6-sqlite

答案 1 :(得分:5)

只需安装:

sudo apt install php-sqlite3

答案 2 :(得分:0)

在我的系统上,这有效。不过可能并不适合所有人:

  1. 我在今年早些时候使用过 Symfony 和 PostGRESQL
  2. 今天我做了我认为一个干净的 symfony 项目安装,使用 composer 和 symfony.com 上的说明
  3. 我收到了您描述的错误 \
  4. 我看了一切。终于看到,出于某种原因,我的 .env 被设置为使用 postGreSQL。将该行从 /.env 文件中注释掉,并将其设置为 SQLite:
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"
# DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=13&charset=utf8"
###< doctrine/doctrine-bundle ###