Estou trabalhando para atualizar minha VM para PHP7 e me deparei com alguns problemas, como: Aviso de PHP: inicialização do PHP: não é possível carregar a biblioteca dinâmica '/usr/lib64/php/modules/pdo.so' - /usr /lib64/php/modules/pdo.so: símbolo indefinido: zend_get_executed_scope em Desconhecido na linha 0
Quero baixar novamente esses arquivos. Como posso fazer isso?
Trabalhando no centos 7.
Responder1
O gerenciador de pacotes do CentOS 7 é yum, possui um subcomando whatprovides
que pode ser usado para descobrir a qual pacote um arquivo pertence. Por exemplo, você quer saber como 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
Então, no meu sistema CentOS 7 eu faria
yum install php-pdo
Enxágue e repita conforme necessário.
Responder2
Você tem que reinstalar todos os pacotes php que instalou (geralmente é "php-*"). Para qualquer arquivo de configuração que seja diferente no RPM daquele que você possui, o RPM criará um arquivo ".rpmnew" e lançará um aviso ao executar a transação de instalação do pacote novamente. Você pode usar manualmente esses arquivos para substituir os quebrados (ou até mesmo usar uma ferramenta de comparação para descobrir o que você quer ou não).
Como observação lateral: tome cuidado se você tiver arquivos ini personalizados em /etc/php.d/. Yum não lançará nenhum aviso sobre isso. Você pode remover/renomear essa pasta antes de executar a reinstalação.