업데이트 후 PHP 확장_디렉터리가 변경되었습니다.

업데이트 후 PHP 확장_디렉터리가 변경되었습니다.

저는 18.04LT에서 v20.04LTS까지의 패키지와 함께 업데이트를 확인하고 최근 Ubuntu를 업데이트한 클라이언트에게 조언하고 있습니다. 그들은 Ubuntu와 함께 제공되는 PHP 7.2(7.2.34-38+ubuntu18.04.1+deb.sury.org+1)를 사용하고 있습니다. 업데이트 후에는 memcached 확장을 더 이상 사용할 수 없습니다. 내 생각에는 이것이 백포트된 보안 업데이트를 받았고 전체 애플리케이션이 교체되고 일부 관리형 호스팅으로 이동되는 올해 말까지 이에 의존하고 있다는 것입니다.

웹에서 phpinfo()를 통해 구성을 살펴보면 다음과 같습니다.

구성 파일(php.ini) 경로/etc/php/7.2/apache2

확장 디렉토리/usr/lib/php/20170718

/usr/lib/php/20170718의 내용

$ ls /usr/lib/php/20170718/
calendar.so  ftp.so      mbstring.so   pdo.so        soap.so       wddx.so       zip.so
ctype.so     gd.so       mysqli.so     phar.so       sockets.so    xmlreader.so
curl.so      gettext.so  mysqlnd.so    posix.so      sysvmsg.so    xmlrpc.so
dom.so       iconv.so    newrelic.so   readline.so   sysvsem.so    xml.so
exif.so      intl.so     opcache.so    shmop.so      sysvshm.so    xmlwriter.so
fileinfo.so  json.so     pdo_mysql.so  simplexml.so  tokenizer.so  xsl.so

그리고 다음 디렉토리의 내용

/usr/lib/php$ ls 
20170718  20210902  7.2  8.1  packaging              php-helper              sessionclean
20190902  20220829  7.4  8.2  php-fpm-socket-helper  php-maintscript-helper

여기에서 버전과 날짜 API 번호를 보는 것은 약간 혼란스러운 것 같습니다. 그들 사이에 일종의 혼란이 발생한다고 가정합니다. 그러나 나는 그들 사이의 차이점이 무엇인지 정말로 모릅니다.

php-memcached를 설치하려고 하면:

$ sudo apt install php-memcached
Reading package lists... Done
Building dependency tree       
Reading state information... Done
php-memcached is already the newest version (3.2.0+2.2.0-3+ubuntu18.04.1+deb.sury.org+1).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

나는 또한 php-cli 명령을 실행하려고 할 때 이것을 발견했습니다:

$ php --version
PHP Warning:  PHP Startup: Unable to load dynamic library 'igbinary.so' (tried: /usr/lib/php/20170718/igbinary.so (/usr/lib/php/20170718/igbinary.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/igbinary.so.so (/usr/lib/php/20170718/igbinary.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'msgpack.so' (tried: /usr/lib/php/20170718/msgpack.so (/usr/lib/php/20170718/msgpack.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/msgpack.so.so (/usr/lib/php/20170718/msgpack.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20170718/memcached.so (/usr/lib/php/20170718/memcached.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/memcached.so.so (/usr/lib/php/20170718/memcached.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.2.34-38+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Feb 14 2023 18:27:17) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.34-38+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

따라서 아마도 igbinary, msgpack 및 memcached가 누락되었을 것입니다.

문제는 업데이트 프로세스 중에 무엇이 잘못되었으며 이러한 패키지를 올바르게 설치하려면 어떻게 해야 합니까?입니다.

업데이트: 궁극적으로 이것이 문제를 해결한 것이라고 생각합니다.

 # add-apt-repository ppa:ondrej/php
 # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4f4ea0aae5267a6c
 # apt-get install php-memcached php7.2-memcached
 # apt-get install php-igbinary php7.2-igbinary # probably redundant to the above
 # apt-get install libapache2-mod-php7.2
 # systemctl restart apache2

처음에 어떻게 깨졌는지는 잘 모르겠지만요.

관련 정보