AtoM 무작정(?) 따라 설치하기 (1) 설치 환경 구성하기

설치 가이드 원본(AtoM Admin Manual)
2023-05-09 망내 작성

AtoM 설치 환경 구성하기

AtoM을 설치하기 전에, 설치한 우분투에 오메카를 설치할 수 있는 환경(NGINX, PHP, MySQL)을 구성해 주어야 합니다.
AtoM은 Omeka와 달리 Apach 환경이 아닌 Nginx 환경에 설치되기 때문에, 설치 방법이 조금 다릅니다.
설치 과정은 순서대로 무작정(!) 따라만 오시면 되는데, 중간에 누락되는 줄이 없도록 주의하셔야 합니다!
중간에 한 두 줄을 빠트린 걸 뒤늦게 발견하면, 문제가 되는 부분을 찾아서 고치기 보다 인스턴스를 새로 만들어서 다시 설치하는 게 빠를 정도로 복구하기가 쉽지 않습니다.
어떻게 알았냐구요…? 저도 알고 싶지 않았어요…
만약 중간에 사정이 생겨 설치를 멈추었다가 다시 시작했는데 어디까지 했는지 기억이 나지 않는 경우, 기억이 나는 부분부터 다시 시작해도 무관합니다.
중간 중간 주의해야 할 점은 강조해 두겠습니다. 꼭 기억해두세요!

root 계정 생성

sudo passwd
PHP
복사
PuTTY, 터미널 혹은 AWS의 ‘연결’ 로 우분투에 접속한 시점에서 시작합니다. 이미지는 PuTTY이지만, 터미널 역시 같은 구조이므로 똑같이 따라오시면 됩니다.
(중요)PuTTY와 터미널은 DoS 환경으로, ctrl+v로 붙여넣기를 할 수 없습니다. 대신 코드를 복사한 후 DoS 화면에서 마우스 오른쪽 클릭으로 복사한 내용을 붙여 넣을 수 있습니다.
(중요)만약 AWS에서 제공하는 연결 기능을 사용하신다면, ctrl+shift+v 단축키를 사용하여 복사한 내용을 붙여 넣을 수 있습니다.
root 계정의 암호를 만들어주는 과정입니다. 위의 명령어를 입력하시고 엔터를 누릅니다.
이후 별도의 설명이 없으면, 이미지 하단의 명령어 입력+ 엔터로 진행하시면 됩니다.
패스워드를 입력합니다. 입력해도 아무런 반응이 없는데, 보이지만 않을 뿐 정상적으로 입력되고 있으니 당황하지 마시고 입력 후 엔터!
방금 입력한 패스워드를 한번 더 입력합니다.
패스워드를 성공적으로 생성했다면, 위와 같은 메시지가 출력됩니다. 만약 위의 “successfully” 멘트가 나오지 않고 오류가 발생한다면 두 번의 패스워드를 다르게 입력되었을 가능성이 큽니다. 위의 과정을 다시 반복합니다.
su root
PHP
복사
변경한 패스워드로 루트(관리자)권한에 접근합니다.
패스워드는 역시 입력되는 내용이 보이지 않습니다. 당황하지 마시고 입력하신 후 엔터로 접속해 주세요! 정상적으로 접근 되었다면 입력 항목의 맨 앞 부분이 ubuntu에서 root로 전환됩니다.
sudo apt-get update
PHP
복사
* 주의 : sudo apt-get upgrade 명령어는 설치 패키지들을 최신 버전으로 업그레이드할 때 사용.
본격적으로 환경구성에 들어갑니다. 우선 우분투 운영체제 패키지 목록을 업데이트 합니다.
(중요) PC 혹은 네트워크 환경에 따라, 명령어를 수행하는 중간에 잠시 멈추는 경우가 있습니다. 이때 명령어 수행이 끝난 것으로 오해하고 다음 명령어를 입력하려 시도하거나, 오류로 생각하고 강제로 종료하는 실수를 하지 않도록 주의해야 합니다.
명령어가 종료되면 ‘입력 항목’이 다시 나타납니다. 이 항목이 나타날 때 까지 기다린 후 다음 명령어를 입력합니다!

MySQL 설치

sudo apt install -y mysql-server
Bash
복사
MySQL 8.0을 설치합니다.
MySQL의 설치가 완료되었다면, mysql 환경설정 파일을 생성해 주어야 합니다.
cd /etc/mysql/conf.d/
Bash
복사
우선 환경설정 파일을 생성할 위치로 이동합니다.
mysql 환경설정 파일을 생성할 경로로 이동했습니다.
nano mysqld.cnf
Bash
복사
nano 에디터를 사용해 환경설정 파일을 생성하고 열어줍니다.
이렇게 빈 페이지가 출력되면 정상적으로 파일이 생성된 것입니다.
만약 동일한 이름의 파일이 이미 생성되어 있다면, 해당 파일에 입력된 내용이 보여집니다. +
[mysqld] sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION optimizer_switch='block_nested_loop=off'
Bash
복사
위의 내용을 붙여넣고, Ctrl + o → 엔터 → Ctrl + x 를 순서대로 눌러 저장 후 파일을 닫아줍니다.
Ctrl + o 입력 시 다음과 같은 문구가 출력됩니다. 여기서 엔터 키를 한번 눌러줍니다.
위와 같은 문구가 출력되면 성공적으로 입력된 것이므로, ctrl + x 를 입력하여 닫아줍니다.
sudo systemctl restart mysql
Bash
복사
이제 MySQL을 다시 시작합니다.

ElasticSearch 설치

ElasticSearch는 Apache Lucene을 기반으로 하고 AtoM에 많은 고급 기능, 성능 및 확장성을 제공하는 Java로 개발된 검색 서버입니다.
AtoM에서는 기본 검색도구로 ElasticSearch를 사용하므로, AtoM을 설치하기 위해서는 반드시 설치해 주어야 합니다.
ElasticSearch를 설치하기 위해, 우선 OpenJDK를 사용해 Java를 설치합니다.
sudo apt install openjdk-11-jre-headless apt-transport-https software-properties-common
Bash
복사
설치 중간에 입력항목이 나오면 y를 입력해서 설치를 계속해줍니다.
Java의 설치가 완료되면 ElasticSearch를 설치합니다.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Bash
복사
(중요) 명령어 맨 마지막의 대쉬(-)를 반드시 빼놓지 않고 입력해야 합니다!
다운로드가 완료되었다면, 다음으로 저장소를 추가합니다.
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Bash
복사
저장소가 정상적으로 추가된다면 위와 같이 ‘stable main’ 이라는 결과가 출력됩니다. 설치를 하기 전에, 업데이트를 한번 더 수행합니다.
sudo apt update
Bash
복사
이제 ElasticSearch를 설치합니다.
sudo apt install -y elasticsearch
Bash
복사
설치가 완료되면, 서비스 시작과 관련된 설정을 해 줍니다.
sudo systemctl enable elasticsearch
Bash
복사
sudo systemctl start elasticsearch
Bash
복사

PHP 설치

Ubuntu 20.04는 이전 릴리스보다 훨씬 빠른 PHP 7.4를 번들로 제공합니다. PHP7.4와 함께 확장모듈까지 일괄 설치합니다.
sudo apt install -y php-common php7.4-common php7.4-cli php7.4-curl php7.4-json php7.4-ldap php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml php7.4-mbstring php7.4-xsl php7.4-zip php-apcu php-apcu-bc
Bash
복사
입력하는 항목이 길기 때문에, 마지막 부분까지 빠짐없이 복사되었는지 확인하고 붙여넣습니다!
사이트의 속도를 높이기 위해 캐시를 분산해주는 역할을 수행하는 Memcached를 사용하기 위한 설정도 해줍니다.
sudo apt install -y php-memcache
Bash
복사

Gearman 설치

AtoM 2.2 버전 이상부터는 Gearman job server를 설치해주어야 합니다. Gearman은 PHP의 워크로드를 분배해주는 기능을 하는 애플리케이션으로, 사이트 속도 향상과 안정성 향상에 도움을 줍니다.
sudo apt install -y gearman-job-server
Bash
복사

기타 주요 패키지 설치

XML 파일을 PDF 파일로 만드는 도구인 Apache FOP를 설치합니다.
sudo apt install --no-install-recommends fop libsaxon-java
Bash
복사
설치 중간에 입력항목이 나오면 y를 입력해서 설치를 계속해줍니다.
그 외 imagemagick(썸네일이미지 자동 생성), ghostscript(PDF 변환 및 안정성 확보), ffmpeg(음성, 영상 변환) 등 AtoM을 효과적으로 구동하기 위한 패키지를 추가로 설치해줍니다.
sudo apt install -y imagemagick ghostscript poppler-utils ffmpeg
Bash
복사

Ngnix 설치

Ngnix는 가벼움과 고성능을 목표로 하는 웹 서버 소프트웨어로, AtoM 설치의 필수요소입니다.
sudo apt install nginx
Bash
복사
Ubuntu에서는 nginx를 저장소에서 내려받지 않고 바로 설치할 수 있습니다.
설치 중간에 입력항목이 나오면 y를 입력해서 설치를 계속해줍니다.
설치가 완료되면 Nginx에 AtoM을 설치하기 위한 새 블록을 추가합니다.
sudo touch /etc/nginx/sites-available/atom
Bash
복사
명령어 입력 후 별도의 피드백이 없습니다. 계속 진행하면 됩니다!
sudo ln -sf /etc/nginx/sites-available/atom /etc/nginx/sites-enabled/atom
Bash
복사
sudo rm /etc/nginx/sites-enabled/default
Bash
복사
다음으로 AtoM 권장 서버 블록 설정을 해줍니다. 우선 블록을 설정하기 위해 경로를 이동합니다.
cd /etc/nginx/sites-available
Bash
복사
경로가 위와 같이 변경되었는지 확인하고, nano 에디터를 사용해 atom 블록을 열어줍니다.
nano atom
Bash
복사
위와 같이 빈 페이지가 보이면 블록이 열린 것입니다. 블록의 내용을 복사해 붙여넣습니다.
upstream atom { server unix:/run/php7.4-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; } }
Bash
복사
입력하는 항목이 길기 때문에, 마지막 부분까지 빠짐없이 복사되었는지 확인하고 붙여넣습니다!
sudo systemctl enable nginx
Bash
복사
이제 Nginx를 활성화합니다.
sudo systemctl reload nginx
Bash
복사
활성화가 되었다면 다시 한번 로드합니다.
여기까지 설치하셨다면 AtoM 설치를 위한 환경구성은 완료되었습니다.