WordPress: php imagick 관련 오류.

오늘, WordPress Health Monitor 에 이런 경고(?)가 보이기 시작했다.

The optional module, imagick, is not installed, or has been disabled.

지금까지 잘 돼 오고 있었는데, 왜 이런?
몇가지 삽질 끝에, 일단 info.php 를 만들어 확인해봤다.
역시, 없다. imagick 이 있어야 했는데.. 그리고 있었을텐데.

검색에서 상단 부에 걸린 DigitalOcean 문서를 확인했다. 이 사이트 만들 때 참고했던 곳이므로 믿음이 갔기 때문인데.. 결국 실패.
그대로 따라했더니, 그 문서 아래 쪽에 나온 오류(/usr/lib/php/…)까지 그대로 재현됐다.

그러다가, 어떤 글에서 또 다른 글을 추천한 내용을 봤다. ‘추천한 글’이 눈에 들어온 이유는, 그 글의 저자(oerdnj) 때문이었다. 바로, php Launchpad PPA 관리자가 아니던가!

oerdnj 에 따르면, DigitalOcean 쪽에서 제안한 방법 (php.iniextension=imagick 을 추가) 은 할 필요가 없었다. 그냥 모듈 파일만 설치해주면 되는거였다.

그런데, 내 경우, 이미 imagick 는 설치돼 있었다.

$ apt policy imagack*
php8.1-imagick:
  Installed: 3.5.1-2+ubuntu18.04.1+deb.sury.org+3
  Candidate: 3.5.1-2+ubuntu18.04.1+deb.sury.org+3
  Version table:
 *** 3.5.1-2+ubuntu18.04.1+deb.sury.org+3 500
        500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
....
....
php8.0-imagick:
  Installed: (none)
  Candidate: 3.5.1-2+ubuntu18.04.1+deb.sury.org+3
  Version table:
     3.5.1-2+ubuntu18.04.1+deb.sury.org+3 500
        500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
....
....
php-imagick:
  Installed: 3.5.1-2+ubuntu18.04.1+deb.sury.org+3
  Candidate: 3.5.1-2+ubuntu18.04.1+deb.sury.org+3
  Version table:
 *** 3.5.1-2+ubuntu18.04.1+deb.sury.org+3 500
        500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
     3.4.3~rc2-2ubuntu4.1 500
        500 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages
     3.4.3~rc2-2ubuntu4 500
        500 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

그런데 왜 오류가??


원인은 설치된 phpphp-imagick 간 판본이 달라서였다.
info.php 에서 확인하면, php 는 8.0 이 설치돼 있었는데, imagick 은 위에서 보는 바대로 Deb 꾸러미 8.1 만 있을 뿐, 8.0 은 없었다.

며칠 전(어젠가?) php 가 판올림되었는데, 그러면서 살짝 문제가 생긴 모양이다.

좀 더 확인해보면, 아마도 php-imagick 는 가짜꾸러미(Dummy package)로, php 현재 판본과 맞는 php-imagick 를 설치해주는 역할을 하는 듯 하다. 그런데, 아마 꾸러미 제작과정에서 8.0 이 8.1 로 되어 뭔가 혼선을 빚게 된게 아닐까..


결론!

php.info 를 확인해보고, 해당 꾸러미가 없다면 그 꾸러미만 설치해주면 된다.

즉, 지금 상황에서는 sudo apt install php8.0-imagick 이면 상황 종료. 물론, 아파치는 재시동해야 한다.

php8.1-imagick 을 제거해도 될까?

이걸 제거하면, php-imagick 도 함께 지워진다. 게다가 php8.1-common 도 마찬가지로 삭제된다.
그런데, 어차피 현재 php8.1 은 설치되지 않은 상태인데, 저런게 시스템에 있다는 자체가 모순이다. 따라서, 지워도 무방하다.

다만, 이 경우, 판올림이 되었을 때 다음 판 phpx.y-imagick(정식 꾸러미) 가 제대로 설치되지 않을 가능성이 있으므로, 신경써서 따로 추가해주면 되겠다. 또는, 그 때 php-imagick(가짜 꾸러미) 를 다시 설치해도 되겠고.

** 아침부터 꽃삽질!
그나저나, 디즈니 플러스 때문에 블로그 폭발하네.. 며칠 두고 보다가 막아버리든지 해야지..

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.