저는 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
처음에 어떻게 깨졌는지는 잘 모르겠지만요.