¿Cómo se pueden restaurar los archivos php ini y .so a su configuración original?

¿Cómo se pueden restaurar los archivos php ini y .so a su configuración original?

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 whatprovidesque 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.

información relacionada