Исключение Symfony PDO не может найти драйвер

Я знаю, что этот вопрос уже задавали, но я не смог найти ответ, который работает для меня.

Я работаю в Linux, и я создал проект Symfony 4 с композитором, и я хотел установить админку EasyBundle.

Все работает хорошо, но когда я делаю php bin/console server:run и перехожу по адресной ссылке, а для перехода на страницу ставлю /admin в конце, у меня возникает ошибка:

"An exception has been thrown during the rendering of a template ("An exception occurred in driver: could not find driver")."

Я искал весь день, я пробовал все, но я не могу заставить его работать.

кажется, ваша база данных не настроена

goto 07.02.2019 17:43

я не знаю, я ВООБЩЕ не профессионал в настройке веб-сервера и т. д.

Corentin 07.02.2019 17:48

я думаю, что у меня нет базы данных, или если она у меня есть, я не знаю, где и как ее настроить

Corentin 07.02.2019 17:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
3 657
4

Ответы 4

Установите майскл. Тогда сделайте

bin/console doctrine:database:create

потом

bin/console doctrine:schema:update --force

Я видел это раньше и пытался, когда я делаю sudo yum install php-mysql, он говорит: Последняя проверка срока действия метаданных: 1:39:24 назад, четверг, 07 февраля 2019 г., 16:02:55 по центральноевропейскому времени. Нет совпадения для аргумента: php-mysql Ошибка: невозможно найти совпадение И когда я хочу создать базу данных с symfony, та же проблема, не удалось найти драйвер pdo

Corentin 07.02.2019 17:56

Перед запуском вашего веб-приложения Первый необходимо настроить соответствующую среду.

В вашем случае вам нужно настроить стек LAMP или LEMP.

В зависимости от вашего дистрибутива Linux могут быть разные манипуляции. Детали таких манипуляций выходят за рамки этого вопроса.

Я знаю это, но я не знаю, что мне нужно сделать, чтобы создать подходящую среду.

Corentin 08.02.2019 09:06

Есть несколько вещей, которые вы должны сделать, чтобы запустить ваш недавно созданный проект Symfony.

Сначала вам нужно настроить систему управления базой данных на вашем компьютере. Хотя другие предложили MySQL, я бы посоветовал начать с sqlite3. Настройка намного проще и отлично подходит для целей разработки.

Установите sqlite3 на свой компьютер. Если у вас есть дистрибутив на основе Debian, вы можете сделать это с помощью:

sudo apt install sqlite3 php-sqlite3

или с помощью менеджера пакетов.

После успешной установки вам необходимо изменить два файла:

.env

Найдите следующую строку:

# DATABASE_URL=mysql://db_user:[email protected]: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: Sonata\Doctrine\Types\JsonType
    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: 'App\Entity'
                alias: App

Наиболее важной частью является doctrine.dbal. Раздел doctrine.orm может в итоге отличаться в вашем проекте. Важно установить driver: 'pdo_sqlite' и server_version: '3'.

Теперь вы можете следовать ответу @goto, и ваша база данных должна быть создана.

В командной строке вы можете проверить это с помощью:

sqlite3 var/app.db

Введите команду .tables, и таблицы должны быть перечислены.

У меня возникла та же проблема в Windows с XAMPP, потому что в .env я добавил неправильный порт MySQL вместо:

DATABASE_URL="mysql://db_user:[email protected]:3306/db_name?serverVersion=5.7"

Я написал: DATABASE_URL="mysql://db_user:[email protected]:3366/db_name?serverVersion=5.7"

Когда я исправил это на: DATABASE_URL="mysql://db_user:[email protected]:3306/db_name?serverVersion=5.7"

Я смог запустить: Доктрина php bin/console: база данных: создать

Я надеюсь, что это может помочь людям, которые сделали ту же ошибку.

Другие вопросы по теме