AtoM v2.4.0 설치 매뉴얼(Nginx, PHP, MySQL 설치 포함)(Ubuntu OS v16.04 기준)

May 25 편집 AtoM

AtoM 2.4.0을 리눅스 우분투 운영체제 16.04 버젼에서 설치 시 참고하시기 바랍니다.
설치 시 반드시 현재 사용하고 있는 운영체제의 버젼을 확인한 후 설치하세요.
아톰 설치는 SSH 터미널에서 아래와 같이 명령어 입력 방식으로 설치하시면 됩니다.
파란색으로 표시된 명령어만 한 줄 씩 복사해서 터미널에 붙여 넣는 식으로 설치하시면 더 빠른 설치가 가능합니다.

1. 데이터베이스 설치(MySQL)
   sudo apt install percona-server-server-5.6


2. 검색엔진 설치(Elasticsearch)
   sudo apt install openjdk-8-jre-headless software-properties-common

   wget -qO -
http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

   sudo add-apt-repository "deb
http://packages.elasticsearch.org/elasticsearch/1.7/debian stable main"

   sudo apt update

   sudo apt install elasticsearch



3. 웹서버 설치(Nginx)
   sudo apt install nginx

   sudo touch /etc/nginx/sites-available/atom

   sudo ln -sf /etc/nginx/sites-available/atom /etc/nginx/sites-enabled/atom

   sudo rm /etc/nginx/sites-enabled/default


   나노 에디터로 웹서버 환경 설정 파일열기
   sudo nano /etc/nginx/sites-available/atom

   아래의 주황색으로 표시된 스크립트 복사 후 에디터에 붙여 넣기
upstream atom {
  server unix:/run/php7.0-fpm.atom.sock;
}

server {

  listen 80;
  root /usr/share/nginx/atom;

  # http://wiki.nginx.org/HttpCoreModule#server_name
  # _ means catch any, but it's better if you replace this with your server
  # name, e.g. archives.foobar.com
  server_name _;

  client_max_body_size 72M;

  # http://wiki.nginx.org/HttpCoreModule#try_files
  location / {
    try_files $uri /index.php?$args;
  }

  location ~ /\. {
    deny all;
    return 404;
  }

  location ~* (\.yml|\.ini|\.tmpl)$ {
    deny all;
    return 404;
  }

  location ~* /(?:uploads|files)/.*\.php$ {
    deny all;
    return 404;
  }

  location ~* /uploads/r/(.*)/conf/ {

  }

  location ~* ^/uploads/r/(.*)$ {
    include /etc/nginx/fastcgi_params;
    set $index /index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$index;
    fastcgi_param SCRIPT_NAME $index;
    fastcgi_pass atom;
  }

  location ~ ^/private/(.*)$ {
    internal;
    alias /usr/share/nginx/atom/$1;
  }

  location ~ ^/(index|qubit_dev)\.php(/|$) {
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_pass atom;
  }

  location ~* \.php$ {
    deny all;
    return 404;
  }

}

   웹서버 실행 및 재시작
   sudo systemctl enable nginx

   sudo systemctl reload nginx



4. PHP 설치 및 확장 모듈 설치(PHP 7.0)
   sudo apt install php7.0-cli php7.0-curl php7.0-json php7.0-ldap php7.0-mysql php7.0-opcache php7.0-readline php7.0-xml php7.0-fpm php7.0-mbstring php7.0-mcrypt php7.0-xsl php7.0-zip php-memcache php-apcu

   sudo apt install php-dev

   sudo pecl install apcu_bc-beta

   echo "extension=apc.so" | sudo tee /etc/php/7.0/mods-available/apcu-bc.ini

   sudo ln -sf /etc/php/7.0/mods-available/apcu-bc.ini /etc/php/7.0/fpm/conf.d/30-apcu-bc.ini

   sudo ln -sf /etc/php/7.0/mods-available/apcu-bc.ini /etc/php/7.0/cli/conf.d/30-apcu-bc.ini

   sudo systemctl restart php7.0-fpm

   아톰용 PHP pool 설정 파일 만들기
   sudo nano /etc/php/7.0/fpm/pool.d/atom.conf

   아래의 주황색으로 표시된 스크립트를 복사(Ctrl + V)한 후 에디터에 붙여 넣기(Ctrl + V)

[atom]

; The user running the application
user = www-data
group = www-data

; Use UNIX sockets if Nginx and PHP-FPM are running in the same machine
listen = /run/php7.0-fpm.atom.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0600

; The following directives should be tweaked based in your hardware resources
pm = dynamic
pm.max_children = 30
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 10
pm.max_requests = 200

chdir = /

; Some defaults for your PHP production environment
; A full list here:
http://www.php.net/manual/en/ini.list.php
php_admin_value[expose_php] = off
php_admin_value[allow_url_fopen] = on
php_admin_value[memory_limit] = 512M
php_admin_value[max_execution_time] = 120
php_admin_value[post_max_size] = 72M
php_admin_value[upload_max_filesize] = 64M
php_admin_value[max_file_uploads] = 10
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[display_errors] = off
php_admin_value[display_startup_errors] = off
php_admin_value[html_errors] = off
php_admin_value[session.use_only_cookies] = 0

; APC
php_admin_value[apc.enabled] = 1
php_admin_value[apc.shm_size] = 64M
php_admin_value[apc.num_files_hint] = 5000
php_admin_value[apc.stat] = 0

; Zend OPcache
php_admin_value[opcache.enable] = 1
php_admin_value[opcache.memory_consumption] = 192
php_admin_value[opcache.interned_strings_buffer] = 16
php_admin_value[opcache.max_accelerated_files] = 4000
php_admin_value[opcache.validate_timestamps] = 0
php_admin_value[opcache.fast_shutdown] = 1

; This is a good place to define some environment variables, e.g. use
; ATOM_DEBUG_IP to define a list of IP addresses with full access to the
; debug frontend or ATOM_READ_ONLY if you want AtoM to prevent
; authenticated users
env[ATOM_DEBUG_IP] = "10.10.10.10,127.0.0.1"
env[ATOM_READ_ONLY] = "off"

   atom.conf 파일 저장(Ctrl + O) 후 에디터 모드 종료(Ctrl + V)

   php 프로세스 활성화 및 시작
  
sudo systemctl enable php7.0-fpm
   sudo systemctl start php7.0-fpm

   php 프로세스 실행 여부 테스트
   sudo php-fpm7.0 --test

   불필요한 설정 파일 삭제
   sudo rm /etc/php/7.0/fpm/pool.d/www.conf

   프로세스 재시작
   sudo systemctl restart php7.0-fpm



5. Gearman Job Server 설치
   sudo apt install gearman-job-server


   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



6. Apache FOP 2.1 설치(PDF 검색 도구 생성용)
   sudo apt install --no-install-recommends fop libsaxon-java



7. ImageMagick, GhostScript, ffmpeg 설치(디지털 파일 포맷의 출력 및 프로세싱용)
   sudo apt install imagemagick ghostscript poppler-utils ffmpeg




8. AtoM 다운로드 및 아톰용 디렉토리 생성 및 압축 풀기(2018.5.25 기준 최신 아톰 버젼은 2.4.0)

   wget https://storage.accesstomemory.org/releases/atom-2.4.0.tar.gz

   sudo mkdir /usr/share/nginx/atom

   sudo tar xzf atom-2.4.0.tar.gz -C /usr/share/nginx/atom --strip 1



9. 아톰 디렉토리의 파일시스템 접근 권한 설정
   sudo chown -R www-data:www-data /usr/share/nginx/atom

   sudo chmod o= /usr/share/nginx/atom



10. 아톰용 DB 생성(아래 명령어에서 빨간색 영역에는 데이터베이스 설치 시 입력했던 패스워드를 띄어쓰기 없이 그대로 붙여서 넣으면 됩니다. 예를 들어 -p12345 같이 입력하시면 됩니다)
   mysql -h localhost -u root -p***** -e "CREATE DATABASE atom CHARACTER SET utf8 COLLATE utf8_unicode_ci;"



11. 웹브라우져를 열고 아톰이 설치된 서버의 아이피 또는 로컬호스트 주소로 접근합니다



12. 웹 인스톨러 페이지가 열리면 단계별로 변경한 사항이 있는지 체크하고 넘어갑니다
      만약 DB를 atom이 아닌 다른 이름으로 생성한 경우 해당 이름으로 입력해야 합니다.

     혹시 설치 단계에서 페이지 500 에러가 발생하는 경우엔 아래의 URL 을 입력하면 초기 설치 화면이 나타납니다. 
     브라우져 주소창에서 서버의 아이피 주소 또는 로컬호스트 주소 뒤에 빨간색으로 표시된 URL만 붙여주시면 됩니다.

      http://서버아이피주소(또는 로컬 호스트 주소)/index.php/sfInstallPlugin/checkSystem




13. 아톰 사이트 환경 설정 페이지가 나오면 알맞게 입력하고 넘어갑니다
     Site title : 사이트 제목 입력
     Site description : 사이트 설명 입력
     Site base URL : 아이피 주소나 도메인 주소 입력. 이미 들어가 있는 경우엔 무시
     Username : 관리자용 영문 아이디 입력(ex: admin)
     E-mail address : 관리자 이메일 주소 입력
     Password : 관리자 패스워드 입력



14. 완료되면 사이트 메인 페이지로 이동한 후 각 메뉴별로 정상 출력되는지 체크합니다


15. 완료








코멘트에 접속 혹은 등록.