我正在将虚拟机升级到 PHP7,但遇到了一些问题,例如: PHP 警告:PHP 启动:无法加载动态库 '/usr/lib64/php/modules/pdo.so' - /usr /lib64/php/modules/pdo.so:未定义符号:第 0 行未知中的 zend_get_execulated_scope
我想重新下载这些文件。我怎样才能做到这一点?
在 centos 7 上工作。
答案1
CentOS 7 的包管理器是 yum,它有一个子命令whatprovides
可用于查找文件属于哪个包。例如,您想知道如何重新安装/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
所以,在我的 CentOS 7 系统上我会
yum install php-pdo
冲洗并根据需要重复。
答案2
您必须重新安装所有已安装的 php 软件包(通常是“php-*”)。对于 RPM 中与您拥有的配置文件不同的任何配置文件,RPM 将创建一个“.rpmnew”文件,并在再次运行安装包的事务时抛出警告。您可以手动使用这些文件来替换损坏的文件(甚至使用 diff 工具来确定您想要或不想要什么)。
附注:如果 /etc/php.d/ 中有自定义 ini 文件,请小心。百胜不会对这些发出任何警告。您可以在运行重新安装之前删除/重命名该文件夹。