我正在將虛擬機器升級到 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 文件,請小心。百勝不會對這些發出任何警告。您可以在執行重新安裝之前刪除/重新命名該資料夾。