gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/Trouble Shooting

워드프레스 테마 데모 설치 에러 - Maximum execution time of 29 seconds exceeded

gbmin 2023. 7. 4. 20:47

워드프레스 테마 데모를 설치할 때 에러가 발생되었다.

Maximum execution time of 29 seconds exceeded in /www/wp-includes/class-wp-image-editor-imagick.php on line 454

해당 에러는 php 실행 시간을 초과했다는 에러다.

Maximum execution time of 29 seconds exceeded


원인

실제로 서버의 php max_execution_time 설정이 짧아서 에러가 발생될 가능성이 있다. 하지만 서버의 실행 시간은 29초 이상이었고 심지어 600초로 설정되어 있었는데도 불구하고 동일한 에러가 발생하였다.

에러가 발생된 파일을 보면 이미지 처리를 하는 과정에 발생된 문제임을 알 수 있다. 워드프레스는 기본적으로 두 가지 이미지 처리 라이브러리를 지원한다: GD Library와 Imagick (ImageMagick의 PHP 구현). 워드프레스는 기본적으로 둘 중 어느 하나를 선택하여 사용하며, 이 선택은 서버 환경에 따라 달라진다. 워드프레스를 설치했던 서버의 경우 php 확장 모듈 imagick , GD 모두 설치된 상태였다. 코드를 수정하여 이미지 라이브러리를 변경해 보기로 했다.

 

 

해결 방법

./wp-content/themes/$사용중인테마/functions.php 파일을 열어 아래 코드를 넣는다.

add_filter( 'wp_image_editors', 'change_graphic_lib' );
function change_graphic_lib($array) {
return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}

위의 코드는 wp_image_editors 필터를 사용하여 이미지 처리 라이브러리의 기본 설정 값을 변경하는 코드이다. 필터를 사용하면 워드프레스의 기본 기능이나 출력을 변경할 수 있다. change_graphic_lib 함수는 wp_image_editors 필터에 연결되어 있으며, 이 함수는 이미지 처리 라이브러리의 순서를 결정하는 배열을 반환한다. 여기서는 먼저 'WP_Image_Editor_GD'를 시도하고, 그것이 실패하면 'WP_Image_Editor_Imagick'를 사용하도록 순서를 변경하였다. 이런 방식으로 워드프레스의 이미지 처리 라이브러리를 사용자 정의할 수 있다.

 

이런 방법은 특히 Imagick가 제대로 작동하지 않거나, 서버에서 지원되지 않는 경우에 이미지 처리 라이브러리를 변경하여 유용하게 사용될 수 있다. GD Library는 기능 면에서 Imagick보다는 제한적이지만, 호환성 면에서는 더 넓게 지원되기 때문이다.