Debian 시스템에서 PHP 확장 바이너리는 에 있습니다 . 내부에는 및 와 /usr/lib/php/
같은 각 PHP 버전에 대한 폴더와 및 와 같은 날짜 이름이 지정된 폴더가 있습니다 .7.2
7.3
20170718
20180731
설치된 확장 프로그램을 사용해도 항상 모든 날짜 폴더에 파일이 추가되는 pecl install
것은 아닙니다 . .so
예를 들어 실행하면 pecl install jsmin
생성되지만 나에게는 작동 /usr/lib/php/20170718/jsmin.so
하지 않습니다 ./usr/lib/php/20180731/jsmin.so
이 날짜는 무엇을 나타냅니까?
답변1
날짜는 PHP API 버전을 식별하는 데 사용되며 다음과 같이 인코딩됩니다.main/php.h
PHP 소스 코드에서. 이는 PHP 확장의 빌드 식별자로 사용됩니다.
PHP API 버전은 다음 PHP 버전에 해당합니다.
API 버전 | PHP 릴리스 |
---|---|
20170718 | PHP 7.2 |
20180731 | PHP 7.3 |
20190902 | PHP 7.4 |
20200930 | PHP 8.0 |
20210902 | PHP 8.1 |
20220829 | PHP 8.2 |
답변2
아래 폴더 이름의 날짜는 /usr/lib/php/
특정 배포판(이 경우 Debian)용으로 PHP 버전이 컴파일되고 패키징된 날짜를 나타냅니다.
각 폴더 내의 파일은 .so
특정 PHP 버전 및 특정 날짜에 맞게 컴파일되며 해당 날짜의 PHP 설치에서 사용됩니다. 모든 확장 프로그램이 모든 PHP 버전에 대해 컴파일된 버전을 가지고 있지 않을 수 있으므로 .so
일부 확장 프로그램에는 파일이 누락되어 있습니다.