Apache Jena Fuseki 리눅스 설치
1. SSH access to virtual host
VirtualBox (or similar) VM environment와 같은 가상환경에서 설치한다는 가정입니다.
$ sudo apt install openssh-server
VM은 NAT 네트워크를 사용하기 때문에 VM Environment에서 환경설정->네트워크->NAT->포트포워딩을 선택하고, Rule의 이름을 ssh, 프로토콜=TCP, Host Port=2222, Guest Port=22로 설정한다음 위의 명령어를 터미널에서 실행하면 됩니다.
2. Install Java 8 And Apache Jena Fuseki
아래의 명령어를 터미널에서 실행.
$ sudo apt update
$ sudo apt install openjdk-8-jre-headless
Fuseki는 자바 1.8버전 이상에서 가동한다. 1.7버전일 경우 이전 버전을 삭제하고 1.8버전을 새로 설치하도록 합니다.
# show the available Java versions
$ sudo update-java-alternatives -l
위의 명령어를 입력하면 현재 설치된 자바의 버전을 확인할 수 있다.
# set the version to use
$ sudo update-java-alternatives --set java-1.8.0-openjdk-amd64
그 다음 Fuseki를 설치한다.
$ wget http://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-3.13.1.tar.gz
설치가 다 되었으면 아래 명령어를 사용해서 압축을 풀어줍니다.
$ cd /opt
$ sudo tar xzf ~/apache-jena-fuseki-3.13.1.tar.gz
$ sudo ln -s apache-jena-fuseki-3.13.1 fuseki
아래 명령어를 사용해서 fuseki가 잘 설치가 되었는지 확인한다.
$ cd /opt/fuseki/
$ ./fuseki-server --help
$ ./fuseki-server –version
3. Create a Fuseki system user
보안을 위해 Fuseki라는 시스템 사용자를 생성해준다.
$ sudo adduser --system --home /opt/fuseki --no-create-home fuseki
4. Create directories for Fuseki configuration and databases
Fuseki 파일을 별도의 시스템 디렉토리로 분할하여 최소한 FHS(Filesystem Hierarchy Standard)와 비슷한 레이아웃을 생성한다.
Fuseki에서 필요한 파일을 관리하기 위해 lib, log, etc 폴더를 생성한다.
# create the database directories
$ cd /var/lib
$ sudo mkdir -p fuseki/{backups,databases,system,system_files}
$ sudo chown -R fuseki fuseki
# create the log directories
$ cd /var/log
$ sudo mkdir fuseki
$ sudo chown fuseki fuseki
# create the configuration directories
$ cd /etc
$ sudo mkdir fuseki
$ sudo chown fuseki fuseki
# finally create symlinks for databases and logs within the configuration directory
$ cd /etc/fuseki
$ sudo ln -s /var/lib/fuseki/* .
$ sudo ln -s /var/log/fuseki logs
5. Create the systemd script
그리고 /etc/systemd/system/fuseki.service로 fuseki 서비스 파일을 생성해준다.
$ cd /etc/systemd/system
$ vi fuseki.service
내용은 아래와 같이 입력한다.
[Unit] Description=Fuseki [Service] Environment=FUSEKI_HOME=/opt/fuseki Environment=FUSEKI_BASE=/etc/fuseki Environment=JVM_ARGS=-Xmx6G User=fuseki ExecStart=/opt/fuseki/fuseki-server Restart=on-failure RestartSec=15 [Install] WantedBy=multi-user.target |
아래 명령어로 fuseki를 실행시킨다.
$ sudo systemctl start fuseki -- fuseki 실행
$ sudo systemctl status fuseki -- fuseki 서버 상태 확인
$ sudo systemctl enable fuseki
웹 브라우저에서 localhost:3030을 입력하면 Fuseki 접속이 가능하다.
다른 네트워크에도 접속이 가능하게 하려면 가상머신-설정-네트워크-포트포워딩에 들어가서
Name="fuseki", Protocol="TCP", Host Port="3030", Guest Port="3030"로 설정해준다.
포트 포워딩을 설정하면 아래와 같이 다른 환경에서도 접속이 가능해진다.
후에 다시 리눅스로 돌아가서 보안 구성 /etc/fuseki/shiro.ini에서 / $ / ** = anon 행을 주석 처리하고 Fuseki를 다시 시작하여 로컬이 아닌 호스트 액세스에 대한 관리 작업을 허용하도록 Fuseki에 지시해야 한다. Fuseki URL을 전세계에 공개하면 누구나 데이터 세트를 관리할 수 있으므로 위험 할 수 있다.
cd /etc/fuseki
vi shiro.ini
vi 편집기를 통해 shiro.ini를 열어주고,
/$/** = anon에 ##을 붙혀서 주석을 처리해주면 local이 아닌 다른 환경에서도 dataset을 관리할 수 있게 된다.
Fuseki.service가 등록이 되면 아래 명령어로 서비스를 키고 끌 수 있다.
'Java > RDF&Jena' 카테고리의 다른 글
[Jena] Apache Jena TDB란? (0) | 2020.03.27 |
---|---|
[RDF] Parse error: Bad character in IRI(space) 해결 방법 (0) | 2020.03.27 |
Jena SPARQL 사용 방법 및 소스 코드 (0) | 2020.03.20 |
Jena SDB 사용 예제 (0) | 2020.03.20 |
RDF - Jena 예제 및 주로 사용하는 함수 정리 (0) | 2020.03.12 |