He estado intentando instalar php (7.2) en Ubuntu (16.04) con PDO habilitado. No necesito php como módulo apache, porque quiero usar el servidor integrado de PHP (en modo cli, como php -S localhost:80
).
Entonces, esto es lo que hago:
sudo apt-get install php
sudo apt-get install php-mysql
sudo cp /usr/lib/php/7.2/php.ini-production.cli /etc/php/7.2/cli/php.ini
Ahora, en php.ini sin comentar:
extension=pdo_mysql
Y aún cuando ejecuto php -v
me sale el error:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20170718/pdo_mysql (/usr/lib/php/20170718/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0
php -m
salida:
[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]
sudo phpenmod pdo_mysql
me da/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Respuestas:
Resolví el problema de esta manera:
sudo apt-get --purge remove php-common
sudo apt-get install php-common php-mysql php-cli
Ahora no hay error y
php -m
muestra que tiene todo:Todavía no sé qué causó el problema en primer lugar
fuente
xampp
problema en ubuntu 16.04. GraciasCreé el mismo problema para mí en mi caja de trabajo descomentando manualmente varios
líneas en el
php.ini
. Lo que realmente era yo, adivinando elapt-get install
proceso. Creo que php7 + moderno maneja estas extensiones usandoconf.d
archivos específicos como:/etc/php/7.3/cli/conf.d/10-pdo.ini
/etc/php/7.3/cli/conf.d/20-pdo_mysql.ini
La respuesta entonces para mí fue volver a comentar estas
;extension
líneas en elphp.ini
archivo del cli .fuente