pdo_mysql - pdo mysql php ini
PHP 7 RC3: Cómo instalar MySQL PDO faltante (10)
- descargue el código fuente de php 7 y extráigalo.
- abre tu terminal
- nadar al directorio ext / mysqli
-
usar comandos:
phpize
./configure
hacer
hacer instalar (como root)
- habilite extension = mysqli.so en su archivo php.ini
- ¡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.
- Descargue el código fuente de php 7 y extráigalo.
- abre tu terminal
- nadar al directorio ext / pdo_mysql
-
usar comandos:
phpize
./configure
hacer
hacer instalar (como root)
-
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.