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를 눌러 에디터 모드를 종료 합니다.
위의 설정 사항이 시스템 백그라운드에서 실행되게 하기 위해선 데몬 서비스를 재시작 해야 합니다
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/