Laravel: PDOException: no se ha podido encontrar el driver

Estoy desarrollando un sitio web en un servidor que sólo tengo acceso a MySQL y FTP, por lo que todos los comandos que ejecuto son a través de la b374k php shell . Estoy experimentando un problema de Laravel con el controlador SQL. Intenté cambiar a SQLite alojado en un archivo (en database/database.sqlite), pero la excepción lanzada es la misma que cuando se usa MySQL. La entrada & salida de la consola es la siguiente:

   php artisan migrate:refresh --seed
    [Illuminate\Database\QueryException]
could not find driver (SQL: select * from sqlite_master where type = 'table ' and name = migrations)
 [Doctrine\DBAL\Driver\PDOException]
could not find driver
 [PDOException]
could not find driver

Las extensiones de Apache instaladas en el servidor son:

    /etc/php/5.6/apache2/conf.d/10-mysqlnd.ini, 
/etc/php/5.6/apache2/conf.d/10-opcache.ini,
 /etc/php/5.6/apache2/conf.d/10-pdo.ini,
 /etc/php/5.6/apache2/conf.d/15-xml.ini, 
/etc/php/5.6/apache2/conf.d/20-calendar.ini,
 /etc/php/5.6/apache2/conf.d/20-ctype.ini, 
/etc/php/5.6/apache2/conf.d/20-curl.ini,
 /etc/php/5.6/apache2/conf.d/20-dom.ini, 
/etc/php/5.6/apache2/conf.d/20-exif.ini, 
/etc/php/5.6/apache2/conf.d/20-fileinfo.ini, 
/etc/php/5.6/apache2/conf.d/20-ftp.ini, /etc/php/5.6/apache2/conf.d/20-gd.ini, 
/etc/php/5.6/apache2/conf.d/20-gettext.ini, 
/etc/php/5.6/apache2/conf.d/20-iconv.ini, 
/etc/php/5.6/apache2/conf.d/20-json.ini, 
/etc/php/5.6/apache2/conf.d/20-mbstring.ini, 
/etc/php/5.6/apache2/conf.d/20-mcrypt.ini, 
/etc/php/5.6/apache2/conf.d/20-mysql.ini, 
/etc/php/5.6/apache2/conf.d/20-mysqli.ini, 
/etc/php/5.6/apache2/conf.d/20-pdo_mysql.ini,
 /etc/php/5.6/apache2/conf.d/20-phar.ini, 
/etc/php/5.6/apache2/conf.d/20-posix.ini, 
/etc/php/5.6/apache2/conf.d/20-readline.ini, 
/etc/php/5.6/apache2/conf.d/20-shmop.ini, 
/etc/php/5.6/apache2/conf.d/20-simplexml.ini, 
/etc/php/5.6/apache2/conf.d/20-sockets.ini,
 /etc/php/5.6/apache2/conf.d/20-sysvmsg.ini,
 /etc/php/5.6/apache2/conf.d/20-sysvsem.ini,
 /etc/php/5.6/apache2/conf.d/20-sysvshm.ini,
 /etc/php/5.6/apache2/conf.d/20-tokenizer.ini, 
/etc/php/5.6/apache2/conf.d/20-wddx.ini,
 /etc/php/5.6/apache2/conf.d/20-xmlreader.ini, 
/etc/php/5.6/apache2/conf.d/20-xmlwriter.ini, 
/etc/php/5.6/apache2/conf.d/20-xsl.ini, 
/etc/php/5.6/apache2/conf.d/20-zip.ini

¿Cuál puede ser el problema y cómo puedo solucionarlo? (No tengo acceso a root bash)

Solución

Si puede, ejecute:

composer update

composer require doctrine/dbal

Parece que te falta una dependencia

Editar:

Es posible que tenga que comentar lo siguiente en su archivo php.ini.

;extension=pdo_mysql.so

Tomado de este post: https://stackoverflow.com/questions/35240414/laravel-5-pdoexception-could-not-find-driver . Creo que tuve que hacer algo exactamente igual al configurar laravel en digital ocean.

Comentarios (4)

Falta el controlador de la base de datos. Para resolver el problema

Primero instale el controlador

Para ubuntu: Para la base de datos mysql.

sudo apt-get install php5.6-mysql/php7.2-mysql

También puede buscar otros sistemas de bases de datos.

También puede buscar el controlador:

sudo apt-cache search drivername

Luego ejecutar el cmd php artisan migrate.

Comentarios (1)

Finalmente lo he solucionado. Había un error en la configuración del servidor y todas las rutas a los ejecutables de php estaban bien excepto la ruta a php-cli, que causaba el error. Cuando arreglé la ruta, todo funcionó bien.

Comentarios (0)