Estoy trabajando para actualizar mi máquina virtual a PHP7 y me he encontrado con algunos problemas como: Advertencia de PHP: Inicio de PHP: no se puede cargar la biblioteca dinámica '/usr/lib64/php/modules/pdo.so' - /usr /lib64/php/modules/pdo.so: símbolo indefinido: zend_get_executed_scope en Desconocido en la línea 0
Quiero volver a descargar estos archivos. ¿Cómo puedo hacer esto?
Trabajando en centos 7.
Respuesta1
El administrador de paquetes para CentOS 7 es yum, tiene un subcomando whatprovides
que puede usarse para averiguar a qué paquete pertenece un archivo. Por ejemplo, quieres saber cómo reinstalar/usr/lib64/php/modules/pdo.so
yum whatprovides /usr/lib64/php/modules/pdo.so
...
php-pdo-5.4.16-42.el7.x86_64 : A database access abstraction module for PHP applications
Repo : base
Matched from:
Filename : /usr/lib64/php/modules/pdo.so
php-pdo-5.4.16-43.el7_4.x86_64 : A database access abstraction module for PHP applications
Repo : updates
Matched from:
Filename : /usr/lib64/php/modules/pdo.so
Entonces, en mi sistema CentOS 7 lo haría
yum install php-pdo
Enjuague y repita según sea necesario.
Respuesta2
Tienes que reinstalar todos los paquetes php que instalaste (normalmente es "php-*"). Para cualquier archivo de configuración que sea diferente en RPM al que tiene, RPM creará un archivo ".rpmnew" y arrojará una advertencia al ejecutar la transacción de instalación del paquete nuevamente. Puede usar esos archivos manualmente para reemplazar los rotos (o incluso usar una herramienta de diferencias para determinar qué quiere o no).
Como nota al margen: tenga cuidado si tiene archivos ini personalizados en /etc/php.d/. Yum no lanzará ninguna advertencia sobre eso. Puede eliminar/cambiar el nombre de esa carpeta antes de ejecutar la reinstalación.