내 VM을 PHP7로 업그레이드하는 중인데 다음과 같은 몇 가지 문제가 발생했습니다. PHP 경고: PHP 시작: 동적 라이브러리 '/usr/lib64/php/modules/pdo.so' - /usr을 로드할 수 없습니다. /lib64/php/modules/pdo.so: 정의되지 않은 기호: 0행의 알 수 없는 zend_get_executed_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 파일이 있는지 주의하세요. Yum은 이에 대해 어떠한 경고도 하지 않을 것입니다. 재설치를 실행하기 전에 해당 폴더를 제거하거나 이름을 바꿀 수 있습니다.