AtoM에서 Import 기능이 작동하지 않거나 500 서버 에러가 발생하는 경우(csv 또는 ead 목록 입수 에러 시 참고)

AtoM 사용 중 관리자 모드의 Import 메뉴에서 csv 또는 ead 목록을 입수 시 에러가 발생하는 경우 참고하시기 바랍니다.

# 에러 원인
- AtoM 설치 중 Gearman Job Server 설치 단계에서 어플리케이션을 설치만 하고 세부 설정을 하지 않은 경우 Gearman의 Worker 프로세스가 실행되지 않아서 임포트시 500 에러가 발생합니다.

- AtoM의 Gearman Job Worker 프로세스가 서버나 시스템 오류로 인해 중지되어 있는 경우에도 마찬가지로 임포트 에러가 발생합니다.

# 해결 방법
1. Gearman Job Server를 설치만 하고 세부 설정을 하지 않은 경우
  1) Ubuntu 16.04 버젼의 운영체제 기준

    nano 또는 vi 에디터로 atom-worker.conf(Worker 서비스 설정 파일) 만들기
    sudo nano /usr/lib/systemd/system/atom-worker.service

   아래의 주황색으로 표시된 스크립트를 복사(Ctrl + C)해서 에디터에 붙여 넣기(Ctrl + V)
    
[Unit]
Description=AtoM worker
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/usr/share/nginx/atom
ExecStart=/usr/bin/php -d memory_limit=-1 -d error_reporting="E_ALL" symfony jobs:worker
ExecStop=/bin/kill -s TERM $MAINPID
Restart=no


     정상적으로 붙여 넣은 경우 아래와 같이 보여집니다.
     이상 없는 경우 Ctrl + O 를 눌러 현재 내용을 저장한 후 Ctrl + X를 눌러 에디터 모드를 종료 합니다.

     image
   
    위의 설정 사항이 시스템 백그라운드에서 실행되게 하기 위해선 데몬 서비스를 재시작 해야 합니다
    sudo systemctl daemon-reload

    AtoM 관리자 모드의 Import 메뉴에서 입수 기능 테스트를 다시 실행합니다
    만약 실행이 되지 않거나 오류가 발생하는 경우 Worker 서비스 프로세스를 다시 활성화하고 재시작 해줍니다.
    sudo systemctl enable atom-worker
    sudo systemctl restart atom-worker



  2) Ubuntu 14.04 버젼의 운영체제 기준
    nano 또는 vi 에디터로 atom-worker.conf(Worker 서비스 설정 파일) 만들기
    sudo nano /etc/init/atom-worker.conf

   아래의 주황색으로 표시된 스크립트를 복사(Ctrl + C)해서 에디터에 붙여 넣기(Ctrl + V)
    
description "AtoM worker (gearmand) upstart service"

start on (started mysql)
stop on runlevel [016]

respawn
respawn limit 5 10

env LOCATION=/usr/share/nginx/atom
env LOGFILE=/usr/share/nginx/atom/log/atom-worker.log

setuid www-data
setgid www-data

script

  php \
    -d memory_limit=-1 \
    -d error_reporting="E_ALL" \
      ${LOCATION}/symfony jobs:worker >> ${LOGFILE} 2>&1

end script

     이상 없는 경우 Ctrl + O 를 눌러 현재 내용을 저장한 후 Ctrl + X를 눌러 에디터 모드를 종료 합니다.

2. Gearman Job Worker 프로세스가 중지되어 있는 경우(SSH 터미널 모드에서 실행하세요)
  1) 프로세스 상태 확인
    sudo systemctl status atom-worker

  2) 프로세스 재시작
    sudo systemctl restart atom-worker

  3) 프로세스 재시작이 되지 않은 경우
    sudo systemctl enable atom-worker
    sudo systemctl start atom-worker
    sudo systemctl stop atom-worker



# 참고 사이트
Asynchronous jobs and worker management
https://www.accesstomemory.org/ko/docs/2.4/admin-manual/installation/asynchronous-jobs/#installation-asynchronous-jobs

Gearman
http://gearman.org/




Sign In or Register to comment.