[워드프레스] “필요한 모듈 gd을(를) 설치하지 않았거나 비활성화 했습니다.” 에러 조치하기

By | 2023-07-04

티스토리 블로그를 워드프레스로 이사하는 테스트를 위해 워드프레스를 우분투 20.04 LTS에 설치했다. PHP-FPM도 설정하고 잘 마무리 되었다고 생각했는데… 웬걸… “필요한 모듈 gd…” 관련 에러가 발생했다.

워드프레스의 “도구” – “사이트 건강”

워드프레스의 관리자페이지의 “도구” – “사이트 건강” 메뉴에 가니… 하나 이상의 모듈이 설치되지 않았다고 표시된다.

워드프레스의 필수 및 선택 모듈 설치 관련 에러

워드프레스의 필수 및 선택 모듈 설치 관련 에러

php가 두 개 이상 서로 다른 버전이 설치되어 있는 경우

원인을 확인하는데 꽤 오랜 시간이 소요되었다.

원인은 서버에 php 7.4 버전과 php 8.1 버전 두개가 설치되어 있었고 쉘 접속 후 php -v 명령을 실행하면 php 8.1 버전이 실행되고 아파치 웹서버에서는 php 7.4 버전이 연결되어 있었다.

쉘에서 실행했을 때의 PHP 버전

위에서 처럼 php 명령을 실행하면 PATH 환경변수의 앞쪽에 있는 /usr/bin의 php가 실행되는데, 이 php는 심볼릭링크로 php8.1로 연결되어 있다.

다음은 Apache2의 설정이다.

Apache2는 FPM 설정이 되어 있고 php 7.4를 사용함

아파치 웹서버는 PHP-FPM이 설정되어 있고 php 7.4를 사용하도록 설정되어 있는 것을 알 수 있다. 이 아파치의 php 설정 변경은 a2enmod 명령을 통해 변경할 수 있었다.

PHP -FPM 버전 스위칭

php7.4와 php8.1이 모두 정상적으로 설치되어 있다면 다음의 명령으로 Apache2가 사용할 php 버전을 스위칭할 수 있다.

먼저 사용중인 php 8.1 모듈을 Disable 한다.

# a2dismod php8.1

다음은 새롭게 사용할 php 7.4 모듈을 Enable 한다.

# a2enmod php7.4

그리고 Apache2 모듈과  php-fpm을 재시작 한다.

# service php7.4-fpm restart

# service apache2 restart

php7.4-gd 재설치

그런데 php-gd를 설치하는 경우 php 버전에 맞춰 php-gd도 버전을 맞춰줘야 했다. 다만 php8.1-gd 만 설치되어 있는 상태에서 LAMP(Linux-Apache-Mysql-PHP 스택)가 php 7.4를 사용하도록 설정되어 있는 경우 앞에서와 같은 에러를 뿌리는 경우가 있는 듯 하다. 즉 버전간 호환성이 보장되지 않는 것으로 보인다.

그래서 결국은 php8.1-gd를 apt remove php8.1-gd 명령으로 삭제하고 강제로 php7.4-gd를 설치했다. 만약 php7.4-gd가 설치되어 있는데도 동일한 에러를 보여준다면 버전별 php-gd를 모두 삭제하고 다시 설치하라는 답변이 있는 해외포럼의 Q&A도 있었다.

내 경우에도 php-gd를 버전별로 모두 삭제한 뒤 php7.4-gd를 설치하니 정상적으로 인식되고 앞에서 발생한 에러가 사라졌다.

php7.4-gd 설치하기

#php-gd #php7.4-gd #a2dismod #a2enmod

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다