** 제대로된 해법?
아마도 아래 내용은, php 판본 설정 오류였다고 생각된다. 따라서 아래같은 임시방편보다는, 보다 근원을 해결하는 방법이 맞다.
따라서, 아래 내용은 볼 필요가 없다. (쓴게 아까워 지우진 않겠지만)
오늘, 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.ini
에 extension=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
그런데 왜 오류가??
원인은 설치된 php
와 php-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
(가짜 꾸러미) 를 다시 설치해도 되겠고.
** 아침부터 꽃삽질!
그나저나, 디즈니 플러스 때문에 블로그 폭발하네.. 며칠 두고 보다가 막아버리든지 해야지..