2012-02-16 15 views
12

He instalado LAMPP en mi sistema Linux, y estoy aprendiendo Symfony2, al intentar crear el esquema con el comando Symfony2PDOException “no pudo encontrar controlador” en php

php app/console doctrine:schema:create 

Recibo el siguiente mensaje de error : -

PDOException “could not find driver” 

también descomentar esta línea extension=php_pdo_mysql.dll en el archivo php.ini

traté de mirar y google mi problema, pero no podía solucionar mi problema. cuando funciono php -m comando que estoy recibiendo el siguiente resultado: -

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0 
[PHP Modules] 
bcmath 
bz2 
calendar 
Core 
ctype 
date 
dba 
dom 
ereg 
exif 
fileinfo 
filter 
ftp 
gettext 
hash 
iconv 
json 
libxml 
mbstring 
mhash 
openssl 
pcntl 
pcre 
PDO 
---- 
---- 

¿Hay una manera que puede eliminar este problema?

Respuesta

7

Espero que esté ejecutando su proyecto en localhost. En la carpeta del proyecto, app/config, un archivo llamado parameters.ini, asegúrese de que la configuración de la conexión de la base de datos Mysql sea correcta. Si está usando mysql, vea database_driver=pdo_mysql es su controlador.

A continuación se muestra un ejemplo.

database_driver = pdo_mysql 
    database_host  = localhost 
    database_port  = 
    database_name  = databasename 
    database_user  = msqlusername 
    database_password = mysqlpassword//if not make blank 

    mailer_transport = smtp 
    mailer_host  = localhost 
    mailer_user  = 
    mailer_password = 

    locale   = en 

    secret   = ThisTokenIsNotSoSecretChangeIt 

Espero que te ayude.

+0

sí Eso ayudó Pero lo que acabo de cambiar estas dos cosas database_host = "127.0.0.1" database_port = "3306" y funcionó – ScoRpion

+0

Muchas gracias – ScoRpion

+0

También instalé mysql en mi ubuntu matchine aparte de xampp – ScoRpion

5

Necesita tener un módulo llamado pdo_mysql.

Busca la siguiente en phpinfo() de salida,

pdo_mysql => DOP Driver para MySQL, versión de la biblioteca cliente => 5.1.44

para instalar pdo_mysql que tiene que hacer esto:

pecl install pdo 
pecl install pdo_mysql 

y luego añadir lo siguiente a su archivo de php.ini:

extension=pdo.so 
extension=pdo_mysql.so 
+0

ahh ok. Pensé que estás en Linux. La conclusión es que necesitará el módulo pdo_mysql para que funcionen sus PDO. No estoy al tanto de lampp. podría ser tan simple como verificar si el archivo pdo_mysql dll está presente. Reinicie su servicio Apache después de descomentar el paquete pdo_mysql.dll en su archivo ini. –

+0

Estoy usando lampp. un paquete que instala php, appache y mysql a su manera en lugar de carpetas predeterminadas ... y estos cmds me dan errores configure: error: No se pueden encontrar archivos de encabezado MySQL bajo ERROR: '/ tmp/pera/temp/PDO_MYSQL/configure ' falló – ScoRpion

+0

@Jaspreet Chahal, ¿su respuesta funciona en Linux? Tengo el mismo problema con OP pero no tengo permiso para editar el archivo 'php.ini'. Si su respuesta realmente funciona, le pediré permiso a mi supervisor para incluirla en el archivo 'php.ini'. – WashichawbachaW

0

Parece que a su instalación le faltan los archivos .so que necesita para implementar la conexión de mysql. Si está utilizando un sistema de administración de paquetes para instalar PHP, asegúrese de haber instalado todos los submódulos necesarios (en este caso, creo que necesitará mysql-dev, y los diversos módulos PHP PDO), aunque dichas dependencias deberían tener sido resuelto por el administrador del paquete.

Si no pasó por un administrador de paquetes, tendrá que compilar los archivos necesarios .so desde la fuente.

6

En Ubuntu, escribir en la consola

sudo apt-get install php5-gd php5-mysql 

y funcionará

+0

php5-gd Estaba missing =) después de instalar todas las extensiones, esta fue la solución para mí, ¡gracias! –

1

brew install php70-pdo-pgsql en caso de que php7 instalado en Mac con cerveza y, cambio de versión PHP de acuerdo a lo que se ha instalado.

+0

Gracias esto me ayudó. – Dblock247

0

si está utilizando XAMPP luego en php.línea de ini no 897 (dependiendo de la versión),

;extension=php_pdo_pgsql.dll 

descomentarla, a continuación, se presenta como continuación

extension=php_pdo_pgsql.dll 

en línea archivo php.ini hay 897, a continuación, reinicie XAMPP.

0

Hay dos versiones de PHP instalado en mi servidor PHP 5.6 y PHP 7

Cuando ejecuto el comando php app/console doctrine:schema:update que tienen el error: [PDOException] could not find driver

resuelvo este error mediante la especificación de la versión de PHP:

php5.6 app/console doctrine:schema:update 
Cuestiones relacionadas