로컬 환경에서 설치

설치 순서

로컬 환경에서 AnyEIMS 설치는 다음과 같은 과정으로 진행됩니다.

설치 파일 준비

AnyEIMS 설치에 필요한 파일을 준비합니다.

|-- libs
    |-- ojdbc8-12.2.0.1.jar  ....(1)
|-- nginx-conf
    |-- nginx.conf  ....(2)
|-- properties
    |-- application-extensions.yml  ....(3)
|-- oracle
    |-- create.sql  ....(4)
    |-- insert.sql  ....(5)
|-- anyeims_front-<버전>.zip  ....(6)
    |-- favicon.ico
    |-- index.html
    +-- assets
|-- anyeims-backend.<버전>.zip  ....(7)
    |-- anyeims-backend.jar
  • 백엔드 서버용 파일

    파일 설명

    (1) ojdbc8-12.2.0.1.jar

    사용할 데이터베이스에 맞는 JDBC 파일입니다.

    (3) application-extensions.yml

    백엔드 바이너리의 확장 속성을 정의하는 파일입니다.

    (7) anyeims-backend.<버전>.zip

    백엔드 바이너리 파일을 포함한 ZIP 파일입니다.

  • 프론트엔드 서버용 파일

    파일 설명

    (2) nginx.conf

    Nginx 설정을 변경할 수 있는 파일입니다.

    (6) anyeims_front-<버전>.zip

    프론트엔드 파일입니다.

  • 데이터베이스 서버용 파일

    파일 설명

    (4) create.sql

    AnyEIMS에서 사용될 테이블을 생성하는 SQL 파일입니다.

    (5) insert.sql

    AnyEIMS에서 기본적으로 사용될 값을 넣는 SQL 파일입니다.

설치 파일 구성

준비한 설치 파일을 각 서버에 다음과 같이 구성합니다.

  • 백엔드 서버

    /home/eims/
    |-- applications
        |-- anyeims-backend.jar
    |-- libs
        |-- ojdbc8-12.2.0.1.jar
    +-- local-storage
    |-- properties
        |-- application-extensions.yml
  • 프론트엔드 서버

    /home/eims/
    |-- nginx
        |-- html
            |-- anyeims_front-<버전>.zip
        |-- conf.d
            |-- nginx.conf

application-extensions.yml 파일 설정

application-extensions.yml 파일 설정을 통해 백엔드 바이너리의 확장 속성을 정의할 수 있습니다. 만약 최초 실행 시 미리 값을 설정하려면 sample:inittrue로 설정하고, 데이터를 입력합니다. 그 이후에는 false로 설정 변경이 필요합니다.

sample:
  init: false  # UI나 API로 설정할 수 없는 값을 넣으려면 true로 변경


spring:
  datasource:
    driver-class-name: oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@<DB의 IP 주소>:<포트 번호>/<DB 이름>
    username: <DB 사용자 이름>
    password: <DB 사용자 비밀번호>
  jpa:
    defer-datasource-initialization: true
    show-sql: true
    database-platform: org.hibernate.dialect.Oracle12cDialect
    hibernate:
      ddl-auto: none
  redis:
    host: localhost
    port: 6379

# 로그 설정
logging:
  file:
    name: /home/eims/log/eims.log  # 로그 파일의 이름 및 경로
    max-size: 500MB
    max-history: 10
  level:
    org : info

nginx.conf 파일 설정

nginx.conf 파일 설정을 통해 Nginx의 속성을 정의할 수 있습니다.

server {
    listen  80;  # 프론트 포트 설정 가능
    client_max_body_size 20M;

    location /v1 {
        proxy_pass  http://<백엔드 접근 IP 주소>:<백엔드 접근 포트 번호>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location / {
        root   /var/www/html;  # 연결할 Root 경로
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    error_page 500 502 503 504 /50x.html;
}

데이터베이스 설정

데이터베이스 서버에서 AnyEIMS이 사용할 데이터베이스를 설정하는 SQL문을 실행합니다.

이때 데이터베이스의 ID, PW는 application-extension.yml 파일에 작성되어 있는 값과 일치해야 합니다.

  • AnyEIMS에서 사용될 테이블을 생성하는 SQL

    $ create.sql
  • AnyEIMS에서 기본적으로 사용될 값을 넣는 SQL

    $ insert.sql

환경 변수 설정

백엔드 서버에서 터미널 실행 후 환경 변수를 통해 Redis 접근 정보를 설정합니다.

ANYEIMS_REDIS_HOST: <Redis에 접근 가능한 호스트명 또는 IP 주소>
ANYEIMS_REDIS_PORT: <Redis 접근 포트 번호>

Redis 접근 정보는 application-extensions.yml 파일에서도 설정이 가능합니다.

바이너리 실행

백엔드 서버

백엔드 서버에서 아래의 명령을 실행합니다.

  • 사용법

    $ java -Dspring.profiles.active=${ANYEIMS_SPRING_PROFILE:prod} -Dspring.config.import=file:<application-extensions.yml 파일 위치>/application-extensions.yml -cp
    <anyeims-backend.jar 파일 위치>/anyeims-backend.jar:<ojdbc 파일 위치>/* org.springframework.boot.loader.JarLauncher --server.port=<설정할 백엔드 포트>
  • 예시

    $ java -Dspring.profiles.active=${ANYEIMS_SPRING_PROFILE:prod} -Dspring.config.import=file:/home/eims/properties/application-extensions.yml -cp
    /home/eims/applications/anyeims-backend.jar:/home/eims/libs/* org.springframework.boot.loader.JarLauncher --server.port=8081

프론트엔드 서버

프론트엔드 서버에서 anyeims_front-<버전>.zip 파일을 /var/www/html 하위에 압축 해제합니다. 압축 해제 후 ls 명령을 실행하여 아래와 같은 결과가 나오는지 확인합니다.

$ ls /var/www/html
assets favicon.ico index.html

또한 /etc/nginx/ngin.conf 파일 설정을 통해 /home/eims/nginx/conf.d 디렉터리를 참조하도록 설정해야 합니다.

...

http {

    ...

    include /home/eims/nginx/conf.d/*.conf; # 참조할 위치 설정
}

설정이 완료되면 Nginx를 실행합니다.

$ nginx -g "daemon off;"