Ejecuté el comando:
php -vProducción:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20170718/pdo_mysql.so.so (/usr/lib/php/20170718/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0Ejecuté este comando:
php -mProducción:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20170718/pdo_mysql.so (/usr/lib/php/20170718/pdo_mysql.so: undefined symbol: mysqlnd_allocator), /usr/lib/php/20170718/pdo_mysql.so.so (/usr/lib/php/20170718/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 [PHP Modules] bz2 calendar Core ctype curl date dom exif fileinfo filter ftp gd gettext hash iconv intl json libxml mbstring openssl pcntl pcre PDO Phar posix readline Reflection session shmop SimpleXML soap sockets sodium SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter xsl Zend OPcache zip zlib [Zend Modules] Zend OPcacheEl archivo php.ini contiene esta línea:
extension=pdo_mysqlEjecutó este comando:
sudo apt-get install -y php-pdo-mysqlNo se instala nada, porque ya está instalado.
Ejecutó este comando:
php -iLa salida muestra:
PDO PDO support => enabled PDO drivers =>No estoy seguro de por qué es esto o qué hacer. ¿Alguna sugerencia?
Probablemente esté utilizando php7.2, por lo que debería editar el archivo php.ini ( /etc/php/7.2/cli/php.ini ).
Y probablemente extension=pdo_mysql en la línea 906 no esté comentada. Comente esta línea agregando ; al principio de la línea.
Después de guardar y cerrar php.ini, el error debería desaparecer, sin embargo, para asegurarse de que los cambios surtan efecto, reinicie el servicio php:
$ sudo systemctl restart php7.2-fpm
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 ningún error y php -m muestra que tiene todo:
Asegúrese de que la ubicación del archivo pdo_mysql.so sea la misma que la de PHP extension_dir:
# php -i|grep extension_dir # find / -name pdo_mysql.soAl hacer esto y agregar la ruta absoluta en php.ini de esta manera:
extension=/usr/lib/php/20190902/pdo_mysqlesto funcionará