AtoM 무작정(?) 따라 설치하기 (2) AtoM 설치

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

AtoM v2.7.1 설치하기

AtoM을 설치할 환경구성이 모두 완료되었습니다. 가장 쉬운 방법은 Tarball에서 AtoM을 내려받아 설치하는 것입니다.
우선, AtoM 설치파일을 저장하기에 적당한 위치로 이동해줍니다.
cd /opt
Bash
복사
wget https://storage.accesstomemory.org/releases/atom-2.8.1.tar.gz
Bash
복사
AtoM 2.8.1 버전을 저장소에서 내려받습니다.
sudo mkdir /usr/share/nginx/atom
Bash
복사
AtoM을 설치할 경로를 생성해줍니다.
sudo tar xzf atom-2.8.1.tar.gz -C /usr/share/nginx/atom --strip 1
Bash
복사
AtoM 설치 경로에 내려받은 AtoM 2.8.1을 설치해줍니다.
AtoM을 설치했다면, 이제 데이터베이스를 생성해 주어야 합니다.
sudo mysql -h localhost -u root -p -e "CREATE DATABASE atom CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
Bash
복사
데이터베이스 이름은 atom으로 생성합니다. 데이터베이스 이름을 변경하고 싶은 경우, 위의 코드 중 주황색 배경 부분을 수정해주시면 됩니다.
암호를 입력하는 항목이 출력되면 암호를 입력해줍니다. 암호는 잊어버리지 않도록 반드시 메모해줍니다.
본 매뉴얼 설치과정에서는 편의를 위해 암호를 ‘123456’ 으로 설정하였습니다.
다음으로 생성한 데이터베이스에 관리자 계정을 생성하고 권한을 부여합니다.
sudo mysql -h localhost -u root -p -e "CREATE USER 'atom'@'localhost' IDENTIFIED BY '123456';"
Bash
복사
관리자 계정의 암호 역시 주황색 배경 부분을 수정해 변경할 수 있습니다. 본 매뉴얼에서는 ‘123456’을 사용합니다.
위에서 생성한 데이터베이스 암호를 입력합니다.
본 매뉴얼의 경우 123456으로 생성했으므로, 123456을 입력합니다.
sudo mysql -h localhost -u root -p -e "GRANT ALL PRIVILEGES ON atom.* TO 'atom'@'localhost';"
Bash
복사
생성한 관리자 계정에 관리자 권한을 부여합니다.
이제 AtoM을 실행할 준비가 되었습니다. 이후 작업은 환경에 맞게 AtoM을 구성하고, 최근 생성한 데이터베이스에 필요한 테이블과 초기 데이터를 추가하며, ElasticSearch 인덱스를 생성하는 간단한 작업입니다.
cd /usr/share/nginx/atom
Bash
복사
우선 AtoM이 설치된 경로로 이동합니다.
위와 같은 경로로 제대로 이동했는지 확인합니다.
php symfony tools:install
Bash
복사
경로로 이동했다면, 설치를 수행합니다.
설치가 시작되면 명령줄 단위로 입력이 시작됩니다. 위의 이미지와 아래 내용을 참고하여 순서대로 입력해줍니다.
Database host: 엔터 Database port: 엔터 Database name: 엔터 (단, 데이터베이스 이름을 변경한 경우, 해당 이름을 입력해줍니다.) Database user: 엔터 Database password: 123456 (단, 데이터베이스 암호를 변경한 경우, 해당 암호를 입력해줍니다.) Search host: 엔터 Search port: 엔터 Search index: 엔터 Site title: 엔터 혹은 원하는 사이트 명 입력 Site description: 엔터 혹은 원하는 사이트 설명 입력 Site base URL: http://(AtoM 퍼블릭IPv4 주소) //예시: http://54.180.202.6 Admin email: 이메일주소 입력 //예시: gylee.work@archivelab.co.kr Admin username: 어드민 유저 이름 입력 //예시: gylee Admin password: 어드민 암호 입력 //예시: 123456
Bash
복사
‘엔터’ 로 명시되지 않은 항목은 반드시 입력해야 하는 항목입니다. 미 입력시 아래와 같이 오류가 출력되며 진행되지 않습니다.
만약 위와 같이 오류가 발생했다면, install 명령어를 다시 입력해 재시작 해주시면 됩니다.
입력이 정상적으로 완료된 경우, 위와 같이 파란 박스로 계속 하겠는지 묻는 항목이 출력됩니다. y를 입력하여 계속합니다.
중간에 나오는 항목 역시 고민 없이 y를 입력하여 계속합니다.
명령줄 입력항목이 다시 표시되면 설치가 완료된 것입니다.

AtoM 서버 설정

AtoM 설치가 끝났다면, 다음으로 서버를 설정합니다. 먼저 파일 시스템 권한을 설정합니다.
sudo chown -R www-data:www-data /usr/share/nginx/atom
Bash
복사
sudo chmod o= /usr/share/nginx/atom
Bash
복사
다음은 Gearman 환경설정입니다. Gearman은 AtoM에서 비동기 작업을 지원하는데 사용됩니다. 먼저 환경설정을 위한 파일을 생성할 경로로 이동합니다.
cd /usr/lib/systemd/system/
Bash
복사
위와 같이 경로가 변경되었는지 확인합니다. 제대로 변경되었다면 nano 에디터로 서비스 파일을 생성하고 열어줍니다.
nano atom-worker.service
Bash
복사
빈 화면이 나오면 정상적으로 접근한 것입니다. 다음을 복사해서 붙여넣고 저장합니다.
[Unit] Description=AtoM worker After=network.target # High interval and low restart limit to increase the possibility # of hitting the rate limits in long running recurrent jobs. StartLimitIntervalSec=24h StartLimitBurst=3 [Install] WantedBy=multi-user.target [Service] Type=simple User=www-data Group=www-data WorkingDirectory=/usr/share/nginx/atom ExecStart=/usr/bin/php7.4 -d memory_limit=-1 -d error_reporting="E_ALL" symfony jobs:worker KillSignal=SIGTERM Restart=on-failure RestartSec=30
Bash
복사
저장이 완료되었다면 재 로드 및 활성화를 위한 명령어를 입력합니다.
sudo systemctl daemon-reload
Bash
복사
sudo systemctl enable atom-worker
Bash
복사
sudo systemctl start atom-worker
Bash
복사
마지막으로 PHP-FPM을 사용하기 위해 PHP 환경설정을 수행합니다. 우선 php7.4-fpm을 설치합니다.
sudo apt install php7.4-fpm
Bash
복사
설치 후, PHP 풀에 AtoM 환경을 추가합니다. 우선 설정을 위해 경로를 변경합니다.
cd /etc/php/7.4/fpm/pool.d
Bash
복사
위와 같이 경로가 변경된 것을 확인하고, 환경설정을 위한 파일을 nano 에디터로 생성 후 열어줍니다.
nano atom.conf
Bash
복사
위와 같이 빈 화면이 나오면 정상적으로 접근한 것입니다. 아래 내용을 붙여넣고 저장해줍니다.
[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.4-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"
Bash
복사
입력 후 저장까지 완료되었다면, 프로세스 관리자를 활성하고 시작합니다.
sudo systemctl enable php7.4-fpm
Bash
복사
sudo systemctl start php7.4-fpm
Bash
복사
마지막으로 서비스가 제대로 시작되었는지 확인합니다.
sudo php-fpm7.4 --test
Bash
복사
위와 같이 test가 성공적으로 수행되었다면, 사용하지 않는 기본 PHP 풀을 삭제합니다.
sudo rm /etc/php/7.4/fpm/pool.d/www.conf
Bash
복사
sudo systemctl restart php7.4-fpm
Bash
복사
여기까지 수행하면 AtoM의 모든 설치과정이 끝났습니다. AtoM이 설치된 주소로 접속하면 설치가 된 것을 확인할 수 있습니다.
만약 아래와 같이 연결이 거부된다면, 상단의 주소창을 확인합니다.
방금 설치한 AtoM은 보안인증서가 발급 및 등록되어있지 않으므로, https 환경이 아닌 http 환경에서 접속해야 합니다. 주소창에서 https 의 ‘s’를 지워줍니다.
정상적으로 접근되는 것을 확인할 수 있습니다.