Как я могу запустить базу данных на Symfony

#php #symfony #doctrine #mysql-connector

#php #symfony #доктрина #mysql-connector

Вопрос:

ЦЕЛЬ:

Я пытаюсь просто создать базу данных, используя doctrine в Symfony. Мой проект установлен в xampp> htdocs

Я ПРОБОВАЛ:

У меня запущен сервер apache, и я могу просматривать свой сайт локально без проблем.
Когда я следую инструкциям в документации, я могу успешно выполнить эти две команды:

 composer require symfony/orm-pack
composer require --dev symfony/maker-bundle  
  

Затем я перехожу к своему файлу .env и изменяю эту строку:

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

чтобы быть этой строкой:

 DATABASE_URL=mysql://root:pass@127.0.0.1:3306/symphart
  

-Я настроил пользователя root на использование пароля «pass» и успешно вошел в phpmyadmin.

-в php.ini-production и php.ini-development включен pdo_mysql

ПРОБЛЕМА:

Когда я запускаю команду:

 php bin/console doctrine:database:create
  

Я получаю сообщение об ошибке:

 C:xampphtdocssymphart>php bin/console doctrine:database:create
[error] Error thrown while running command "doctrine:database:create". Message: "An exception occurred in driver: could not find driver"


In AbstractMySQLDriver.php line 128:

  An exception occurred in driver: could not find driver


In Exception.php line 18:

  could not find driver


In PDOConnection.php line 37:

  could not find driver
  

Вот скриншот сообщения об ошибке:
скриншот сообщения об ошибке

Комментарии:

1. Запустите «php -m» и убедитесь, что у вас установлено и включено расширение mysqli. Если нет, то включите его в вашем файле php.ini и повторите попытку.

2. Извините, я не понимаю. Вот мои модули: [Модули PHP] bcmath calendar Core ctype curl date dom filter hash iconv json libxml mbstring mysqlnd openssl pcre PDO Phar readline Сеанс отражения SimpleXML SPL стандартный токенизатор xml xmlreader xmlwriter zip zlib [/PHP Modules] Когда я убираю точку с запятой перед extension=mysqli и extension=pdo_mysql, это не имеет никакого эффекта.

3. Поскольку вы используете XAMPP, вы запустили MySQL из XAMPP Manager?

4. «mbstring mysqlnd openssl» вы видите там mysql? Исправьте это, и вы устраните проблему.

5. похоже, у вас уже есть несколько файлов php.ini. классика заключается в том, чтобы не знать, какая из них используется в данный момент. apache обычно использует другую базу данных из командной строки. запустите php --ini , чтобы увидеть, какие ini-файлы фактически считываются в командной строке. и измените соответствующую, чтобы включить требуемые модули php

Ответ №1:

РЕШЕНИЕ:

В папке Xampp Windows 10 есть два файла с расширением «.ini», и ни один из них не является тем, что вам нужно. Раскомментирование в них ничего не дало для меня. Это не добавило бы модули.

В Windows 10 вам нужно заглянуть в «C:Xamppphp » для файла под названием «конфигурация». Это точно так же, как ini-файл, но не имеет расширения. Редактирование ЭТОГО файла позволит включить модули.

Спасибо за все усилия, которые все приложили, чтобы ответить на мой вопрос. Вы все были по сути правы. Кажется, просто отсутствует соглашение об именах для Windows 10.

Ответ №2:

Во-первых: лучше всего использовать Symfony server. загрузите Symfony с сайта Symfony.

Второе: правильный способ — иметь стороннюю версию PHP, не связанную с xammp или чем-то еще. и убедитесь, что вы добавили правильный путь для PHP в системные переменные.

Загрузите его отсюда: https://www.php.net/downloads.php Затем включите расширения в файле .ini.

Чтобы убедиться, что вы используете правильную версию PHP, переустановите composer и выберите правильный путь для PHP в процессе установки.