Symfony PDO异常找不到驱动程序



我知道这个问题已经被问过了,但我找不到适合我的答案。

我在Linux上,我用composer创建了一个symfony 4项目,我想安装EasyBundle管理员。

一切都很好,但当我制作php bin/console server:run并转到地址链接,并将/admin放在末尾以转到页面时,我出现了一个错误:

"在呈现模板期间引发异常("驱动程序中发生异常:找不到驱动程序")。">

我搜索了一整天,尝试了所有的东西,但都无法成功。

安装mysql。然后进行

bin/console doctrine:database:create

然后

bin/console doctrine:schema:update --force

启动web应用程序前的第一件事是设置一个合适的环境。

在您的情况下,您需要设置LAMP或LEMP堆栈。

根据您的linux发行版,可能会有不同的操作。这种操作的细节超出了这个问题的范围。

为了运行新建立的Symfony项目,您应该做一些事情。

首先,您必须在您的机器上设置一个数据库管理系统。尽管其他人建议使用MySQL,但我建议从sqlite3开始。设置要容易得多,而且非常适合用于开发目的。

在您的机器上安装sqlite3。如果你有一个基于debian的分发,你可以使用:

sudo apt install sqlite3 php-sqlite3

或者使用包管理器。

成功安装后,您必须修改两个文件:

.env

找到以下行:

# DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name

如果没有评论,请对其进行评论,并在下面添加以下行:

DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db"

config/packages/doctrine.yaml

这个文件应该是这样的:

parameters:
# Adds a fallback DATABASE_URL if the env var is not set.
# This allows you to run cache:warmup even if your
# environment variables are not available yet.
# You should not need to change this value.
env(DATABASE_URL): ''
doctrine:
dbal:
# configure these for your database server
driver: 'pdo_sqlite'
server_version: '3'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
types:
json: SonataDoctrineTypesJsonType
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'AppEntity'
alias: App

最重要的部分是doctrine.dbaldoctrine.orm部分最终可能会在您的项目中有所不同。关键是设置driver: 'pdo_sqlite'server_version: '3'

现在,您可以按照@goto的答案进行操作,您的数据库就应该创建了。

在命令行上,您可以使用进行检查

sqlite3 var/app.db

发出命令.tables,应列出表格。

我在使用XAMPP的Windows上遇到了同样的问题,因为在.env中我添加了错误的MySQL端口,而不是:

DATABASE_URL=";mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7〃

我写道:DATABASE_ URL=";mysql://db_user:db_password@127.0.0.1:3366/db_name?serverVersion=5.7〃

当我将其更正为:DATABASE_ URL=";mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7〃

我能够跑:php-bin/console原则:数据库:创建

我希望它能帮助犯同样错误的人。

最新更新