OMEKA Reports 플러그인에서 QR 코드 생성 실패 시 해결 방법

오메카의 리포트 플러그인은 관리자가 현재 등록되어 있는 아이템 중 전체 또는 선별한 아이템들의 목록을 HTML 또는 QR 코드(PDF형태)로 생성할 수 있습니다. HTML 및 QR 코드 생성 시 출력되는 정보는 다음과 같습니다.

1. HTML 
아이템들의 목록이 HTML 형태로 생성됩니다. 만약 아이템들 각각에 메타정보가 들어 있는 경우엔 그 정보도 아이템 제목 아래에 함께 출력됩니다.

2. QR 코드(PDF)
아이템들의 목록이 PDF 형태로 생성됩니다. 하지만 HTML 방식과는 조금 다르게 아이템의 주소값(URL) 정보를 담고 있는 2차원 QR 코드와 아이템의 제목만 출력됩니다. 이용자가 휴대폰이나 PC에서 QR 코드 스캐너로 읽어들이면 해당 아이템의 메타 정보가 출력되는 것은 아니고 아이템의 주소값만 출력되고 이 링크를 클릭하면 웹에서 해당 아이템 페이지 주소로 이동하게 됩니다. 2차원 QR 코드는 문자나 숫자 외에 사진이나 영상 같은 데이터도 담을 수 있도록 설계되어 있어 기왕이면 코드 스캔 시 해당 아이템의 메타정보와 사진 등이 함께 출력되면 더 좋겠지만 이 플러그인에서는 링크 주소만 나타나서 조금은 아쉬운 점이 있긴 합니다.
한 가지 유의할 점은 생성이 완료되면 zip 파일이 생성이 되고 이를 다운 받아서 압축을 해제하면 QR코드가 들어 있는 PDF가 나온다는 점입니다. 테스트를 해본 결과 출력할 아이템이 적은 경우엔 zip 파일 안에 pdf가 하나만 들어 있었고 많은 경우엔 pdf가 여러 개가 들어 있었습니다. 복수의 pdf 파일이 생성될 가능성이 존재해서 간편하게 이를 zip으로 묶어서 한번에 내려받을 수 있도록 만든 것이 아닌가하는 생각이 듭니다.


그런데 이 리포트 플러그인이 HTML 생성은 에러가 발생하지 않지만 QR 코드 생성 시 에러가 발생하는 경우가 많습니다.
원인을 확인해 보니 QR 코드 생성에 문제가 있는 것은 아니었고 오메카의 PHP 프레임워크가 QR 코드를 담은 pdf를 zip으로 압축하는 과정에서 php-zip(PHP ZipArchive)이라는 확장 모듈을 사용하는데 이 모듈이 서버에 설치되어 있지 않아서 발생하는 오류였습니다.
php-zip 확장 모듈을 설치하는 방법은 아래와 같습니다. 우분투 16.04에서의 설치 기준입니다.
만약 다른 OS를 사용하는 경우엔 웹에서 OS별 설치 방법을 쉽게 찾을 수 있습니다.

$ sudo apt-get install php-zip

만약 위 명령어 실행 시 아래의 캡쳐 화면 처럼 dpkg was interrupted라는 메시지가 나오고 설치가 되지 않는 경우엔 아래의 명령어를 사용한 후 다시 위의 명령어를 사용하면 정상적으로 설치가 됩니다.

$ rm /var/lib/dpkg/updates/*

image

php-zip 확장 모듈이 설치되면 이후 오메카 관리자 모드에서 리포트 플러그인 메뉴로 들어가서 QR 코드 생성 버튼을 클릭해 Status가 Completed라는 표시가 뜨고 zip 파일을 다운로드할 수 있는지 테스트 해보시기 바랍니다.
아래와 같이 나타난다면 에러가 해결된 것입니다.

image
php-zip install.jpg
865 x 888 - 575K
reports.jpg
823 x 735 - 274K
코멘트에 접속 혹은 등록.