php7 pdo_mysql instalar php mysql ubuntu pdo php-7

pdo_mysql - pdo mysql php ini



PHP 7 RC3: Cómo instalar MySQL PDO faltante (10)

  1. descargue el código fuente de php 7 y extráigalo.
  2. abre tu terminal
  3. nadar al directorio ext / mysqli
  4. usar comandos:

    phpize

    ./configure

    hacer

    hacer instalar (como root)

  5. habilite extension = mysqli.so en su archivo php.ini
  6. ¡hecho!

Esto funciono para mi

Estoy tratando de configurar el servidor web con PHP 7 RC3 + Nginx en Ubuntu 14.04 (para fines de prueba).

Instalé Ubuntu en Vagrant usando ubuntu/trusty64 y PHP 7 RC 3 de Ondřej Surý ( https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0 ).

No puedo encontrar la manera de instalar MySQL PDO (PHP ve la clase PDO pero no nada relacionado con MySQL, como PDO::MYSQL_ATTR_DIRECT_QUERY etc.)

Parece que no hay lib php7.0-mysql (por analogía con php5-mysqlnd y php7.0-fpm etc. de Ondřej)

Sección PDO en phpinfo() :

PDO support enabled PDO drivers no value

¿Cómo puedo obtenerlo?


Comenzaré con la respuesta y luego el contexto. NOTA: esta solución se registró anteriormente, solo la estoy reafirmando para cualquiera que busque en Google.

  1. Descargue el código fuente de php 7 y extráigalo.
  2. abre tu terminal
  3. nadar al directorio ext / pdo_mysql
  4. usar comandos:

    phpize

    ./configure

    hacer

    hacer instalar (como root)

  5. habilite extension = mysqli.so en su archivo php.ini

Esto se registra como una respuesta desde aquí (favor de votar si también le ayudó): https://.com/a/39277373/3912517

Contexto: estoy tratando de agregar LimeSurvey al Docker estándar de WordPress. El único punto que me detiene es la "biblioteca de controladores PHP PDO", que es "Ninguno encontrado"

php -i | grep PDO PHP Warning: PHP Startup: Unable to load dynamic library ''pdo_odbc'' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: Module ''mysqli'' already loaded in Unknown on line 0 PDO PDO support => enabled PDO drivers => sqlite PDO Driver for SQLite 3.x => enabled

Ubuntu 16 (Ubuntu 7.3.0)

apt-get install php7.0-mysql

Resultado:

Package ''php7.0-mysql'' has no installation candidate

Obtenga instrucciones que indiquen que todo lo que tengo que hacer es ejecutar esto:

add-apt-repository -y ppa:ondrej/apache2

Pero luego me sale esto:

UnicodeDecodeError: ''ascii'' codec can''t decode byte 0xc5 in position 223: ordinal not in range(128)

Así que trato de forzar algún tipo de UTF: LC_ALL = C.UTF-8 add-apt-repository -y ppa: ondrej / apache2 y obtengo esto: no se encontraron datos válidos de OpenPGP.

Siga algunas otras instrucciones para ejecutar esto: apt-get update y obtengo esto: Err: 14 http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic / main amd64 Paquetes 404 No encontrado Err: 15 http://ppa.launchpad.net/ondrej/php/ubuntu cosmic / main amd64 Paquetes 404 no encontrados y, creo que por eso, obtengo:

The repository ''http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic Release'' does not have a Release file.

En esta etapa, todavía obtengo esto en apt-get update:

Package ''php7.0-mysql'' has no installation candidate.

Empiezo a tratar de agregar bibliotecas de php, tengo problemas con Unicode, traté de evitar eso y ... se entiende la idea ... whack-a-mole. Me di por vencido y miré para ver si podía compilarlo y encontré la respuesta con la que comencé.

¿Te estarás preguntando por qué escribí tanto? Para que cualquier persona que busque en Google pueda encontrar esta solución (¡incluido yo!).


Como eggyal no proporcionó su comentario como respuesta después de dar el consejo correcto en un comentario, lo estoy publicando aquí: en mi caso tuve que instalar el módulo php-mysql . Vea los comentarios bajo la pregunta para más detalles.


Para aquellos que ejecutan Linux con apache2, necesita instalar php-mysql

apt-get install php-mysql

o si está ejecutando ubuntu 16.04 o superior simplemente ejecutando el siguiente comando será suficiente, no es necesario editar su archivo php.ini

apt-get install php7.0-mysql

Si está ejecutando ubuntu 15.10 o inferior:

Edite su archivo php.ini , se encuentra en /etc/php/[version]/apache2/php.ini y busque pdo_mysql , puede encontrar algo como esto

;extension=pdo_mysql.so

Cámbialo a esto

extension=pdo_mysql.so

Guarde el archivo y reinicie apache

service apache2 restart

Verifique que esté disponible en su phpinfo ()


Primero instala php-mysql

sudo apt-get install php7.0-mysql

luego habilite el módulo

sudo phpenmod pdo_mysql

y reiniciar apache

sudo service apache2 restart


Primero, verifique si su php.ini tiene la extensión habilitada "php_pdo_mysql" y "php_mysqli" y la ruta de "extension_dir" es correcta. Si necesita una de las configuraciones anteriores, debe reiniciar php-fpm para aplicar los cambios.

En mi caso (donde estoy usando el sistema operativo Windows en la empresa, realmente prefiero OSX o Linux), resolví el problema poniendo estos valores en php.ini:

; ... extension_dir = "ext" ; ... extension=php_mysqli.dll extension=php_pdo_mysql.dll ; ...

Espero que esto ayude.


Si está en Windows y su carpeta php no está en su RUTA, ha establecido el directorio absoluto en su php.ini

por ejemplo:

extension_dir = "C:/php7/ext"

y descomentar

extension=php_mysqli.dll extension=php_pdo_mysql.dll

Reinicie apache2.4 y debería funcionar.

Espero que ayude.


Tenía, más o menos, el mismo problema. Pude ver que PDO estaba habilitado pero no tenía controladores disponibles (usando PHP 7-RC4). Logré resolver el problema agregando la extensión php_pdo_mysql a las que estaban habilitadas.

¡Espero que esto ayude!


Tuve el mismo problema, resuelto habilitando realmente la extensión en php.ini con el nombre de archivo correcto. Estaba listado como php_pdo_mysql.so pero el nombre del módulo en / lib / php / modules se llamaba solo pdo_mysql.so

Tan solo elimine el prefijo "php_" del archivo php.ini y luego reinicie el servicio httpd y funcionó de maravilla.

Tenga en cuenta que estoy usando Arch y, por lo tanto, los nombres de ruta y los servicios pueden ser diferentes dependiendo de su distribución.


[''class'' => ''yii/db/Connection'', ''dsn'' => ''mysql:host=localhost:3306;dbname=testdb'', ''username'' => ''user'', ''password'' => ''password'', ''charset'' => ''utf8'',]

Es simple: solo proporcione el número de puerto junto con el nombre de host y establezca la ruta de calcetín predeterminada a su mysql.sock archivo mysql.sock en php.ini en la que se ejecuta el servidor.