Сообщение «Не удалось найти драйвер» при выполнении запроса - PullRequest
1 голос
/ 28 октября 2019

У меня есть проект Laravel. Это было нормально, пока я не обновил свой Ubuntu 19.04 до 19.10. При тестировании моих API на Почтальоне я получаю эту ошибку:

"message": "could not find driver (SQL: select * from `users` where `username` = genesis limit 1)",
"exception": "Illuminate\\Database\\QueryException",
"file": "/home/arkhalis/Repos/laravel/safetrade/vendor/laravel/framework/src/Illuminate/Database/Connection.php",
"line": 664

, и после этого я попытался запустить Composer на терминале и получил этот вывод

PHP Fatal error:  Uncaught Error: Call to undefined function Symfony\Component\Console\Helper\mb_detect_encoding() in /usr/share/php/Symfony/Component/Console/Helper/Helper.php:50
Stack trace:
#0 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(329): Symfony\Component\Console\Helper\Helper::strlen('h')
#1 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(97): Symfony\Component\Console\Descriptor\TextDescriptor->calculateTotalWidthForOptions(Array)
#2 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(197): Symfony\Component\Console\Descriptor\TextDescriptor->describeInputDefinition(Object(Symfony\Component\Console\Input\InputDefinition), Array)
#3 /usr/share/php/Symfony/Component/Console/Descriptor/Descriptor.php(55): Symfony\Component\Console\Descriptor\TextDescriptor->describeApplication(Object(Composer\Console\Application), Array)
#4 /usr/share/php/Symfony/Component/Console/Helper/DescriptorHelper.php(67): Symfony\Component\Console\Descriptor\Descriptor->describ in /usr/share/php/Symfony/Component/Console/Helper/Helper.php on line 50

Fatal error: Uncaught Error: Call to undefined function Symfony\Component\Console\Helper\mb_detect_encoding() in /usr/share/php/Symfony/Component/Console/Helper/Helper.php:50
Stack trace:
#0 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(329): Symfony\Component\Console\Helper\Helper::strlen('h')
#1 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(97): Symfony\Component\Console\Descriptor\TextDescriptor->calculateTotalWidthForOptions(Array)
#2 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(197): Symfony\Component\Console\Descriptor\TextDescriptor->describeInputDefinition(Object(Symfony\Component\Console\Input\InputDefinition), Array)
#3 /usr/share/php/Symfony/Component/Console/Descriptor/Descriptor.php(55): Symfony\Component\Console\Descriptor\TextDescriptor->describeApplication(Object(Composer\Console\Application), Array)
#4 /usr/share/php/Symfony/Component/Console/Helper/DescriptorHelper.php(67): Symfony\Component\Console\Descriptor\Descriptor->describ in /usr/share/php/Symfony/Component/Console/Helper/Helper.php on line 50

Также я пыталсязапустите composer update и получите тот же результат, что и этот вопрос и выполните sudo apt-get install php-mbstring, но тот же результат, что и команду composer на терминале.

1 Ответ

2 голосов
/ 28 октября 2019

Попробуйте установить все необходимые расширения от Laravel. Пожалуйста, посмотрите здесь .

Вы можете попробовать запустить эту команду, если вы используете PHP 7.1:

sudo apt install php7.1 php7.1-fpm php7.1-curl php7.1-mysql php7.1-common php7.1-mbstring php7.1-mcrypt php7.1-xml

Или вы можете запустить эту команду, если вывы используете PHP7.2 (без mcrypt, поскольку он был удален)

sudo apt install php7.2 php7.2-fpm php7.2-curl php7.2-mysql php7.2-common php7.2-mbstring php7.2-xml

Если вы столкнулись с ошибкой, возможно, вы не добавили репозиторий PHP. Попробуйте добавить этот полный репозиторий PHP Ондрей Сури .

sudo add-apt-repository ppa:ondrej/php
sudo apt update

Обновление

Поскольку вы используете Ubuntu 19.10 (Eoan),Я слышал, что по умолчанию поставляется с PHP 7.3. Итак, может быть, вы могли бы попробовать:

sudo apt install php php-fpm php-curl php-mysql php-common php-mbstring php-xml

Прямо сейчас ondrej/php все еще не выпускает никаких пакетов PHP для 19.10 (потому что Ubuntu 19.10 выпущена недавно). Автору требуется время, чтобы выпустить пакеты.

...