インストール
データディレクトリ
IPTは設定、リソース、ユーザー、ログをデータディレクトリに保存します。これは、インストール時またはIPTの初回実行時に設定することができます。
Linux上では/var/lib/ipt
(パッケージインストール時)または`/srv/ipt`(Tomcat内で運用時)が一般的な場所です。またWindowsでは、C:\ipt-data
が適切です。IPTは選択した場所への書き込み権限を持っている必要があります。問題がある場合は、FAQエントリを参照してください。
不注意による変更や削除の可能性があるデータディレクトリを選択しないでください。例えば、 データディレクトリは、適切な災害復旧計画に従って、定期的にバックアップを取る必要があります。 データディレクトリの内容が失われると、リソース、ユーザー、その他の構成情報およびIPTインストールに対するカスタマイズが失われます。 |
同じバージョンで以前運用していたIPTのデータディレクトリがあり、その以前の設定(ユーザーとリソースを含む)を使用したい場合は、そのデータディレクトリの絶対パスを以下に入力するか、IPT設定の最初のステップで入力することができます。 |
インストール方法
IPTのインストールにはいくつか方法があります。
-
Red Hat、CentOS、Debian、Ubuntuなどをお使いの方は、Linuxパッケージから直接インストールすることができます。これは、1台のサーバーに1つのIPTをインストールする場合の最も簡単な方法であり、また更新も最も簡単です。
-
その他の*Linux*ユーザーや全てのMS Windowsユーザー、また同じサーバー上で複数のIPTを実行したい方は、代わりにサーブレットコンテナ内でのインストールのセクションをご覧下さい。
-
Dockerイメージも利用可能です。Dockerを使ったインストールを参照してください。
Linuxパッケージからのインストール
RPM(Red Hat, CentOSなど)
To install the IPT onto Red Hat 8–9, CentOS 8–9 or similar, first add the GBIF package repository and install the IPT package:
yum install yum-utils
yum-config-manager --add-repo https://packages.gbif.org/gbif.repo
yum install ipt
オプションとして、/etc/sysconfig/ipt
を編集して、デフォルトのデータディレクトリとポートを変更します。最後に
systemctl enable ipt
systemctl start ipt
(上記で変更されていない場合)IPTはポート8080で起動します。初期ログはjournalctl -u ipt
で見ることができますが、その後データディレクトリにログが記録されます。IPTのデータディレクトリは、デフォルトで/var/lib/ipt
になっているので、必ずバックアップをとってください。
IPTパッケージのインストールに成功すると、Webブラウザを通じて、サーバー名とポート(例:http://server.example.org:8080)で決まるURLでIPTにアクセスできるようになります。インストールに成功すると、IPT のURLを使用して、IPTの初期設定ページがWebブラウザに表示されます。
続いて、IPTをインターネットに接続するに進みます。
APT(Debian、Ubuntuなど)
GitHubのDebian packagingを参照してください。これはGBIFスペインからの投稿であり、IPT開発者はまだサポートしていません。
続いて、IPTをインターネットに接続するに進みます。
サーブレットコンテナ内へのインストール
サーブレットコンテナへのIPTのインストールは、IPTの.warファイルをTomcatのようなサーブレットコンテナに配備することで構成されます。
このセクションでは、サーバに様々な種類のサーブレットコンテナをインストールする方法と、その中でIPTをデプロイする方法について説明します。
リバースプロキシは必要ありませんが、万が一使用する場合は、IPTにApache HTTPD仮想ホスト宣言を設定する方法について説明します。
The most common servlet containers used to deploy the IPT are Tomcat, Jetty and Wildfly. The servlet container must support Servlet Specification 4.0 or later.
Tomcat
The IPT has been tested and works well with recent releases of Tomcat 9. Tomcat 10 and later versions are currently not supported. The minimum supported version is Tomcat 8, but this is likely to change as it is no longer supported by Apache or leading Linux distributions. The Apache Tomcat documentation can be found on https://tomcat.apache.org/.
-
Install Tomcat — see our guide for installing Tomcat on Linux or refer to the Tomcat documentation.
-
Tomcat内のIPTデータディレクトリの設定
このステップはオプションですが、セキュリティの向上とアップグレード手順の簡素化のために推奨します。 Locate the Tomcat configuration directory (usually
/etc/tomcat
or/etc/tomcat9
on Linux,C:\Program Files\Apache Software Foundation\Tomcat X.Y\conf
on Windows), and create a fileCatalina/localhost/ipt.xml
(described in the Tomcat documentation "Defining a context"). For example, on a typical CentOS Linux installation, the file would be/etc/tomcat/Catalina/localhost/ipt.xml
. The file should be readable by the Tomcat process.`IPT_DATA_DIR`パラメータをファイル内で定義します。文字の大文字と小文字が重要なので、ここにテキストをコピー&ペーストしてください。
<Context> <Parameter name="IPT_DATA_DIR" value="/srv/ipt"/> </Context>
Tomcatサーバーがこのディレクトリを作成する権限を持っているか、また作成してから読み取りと書き込みの権限を付与していることを確認してください。データディレクトリの書き込み権限に関するエラーが発生した場合は、こちらの FAQエントリ を参照してください。
この手順を行わないと、IPTの初回実行時にデータディレクトリを求めるプロンプトが表示されます。この場所は、IPTのベースインストールディレクトリの
datadir.location
というファイル (例:/var/lib/tomcat/webapps/ipt/WEB-INF/datadir.location
)に格納されます。データディレクトリの場所を変更する必要がある場合は、このファイルを削除・編集し、Tomcat を再起動します。
-
IPTのデプロイ
リリースページ からIPTの最新のWARリリースをダウンロードし、
ipt.war
(または同様の名前、ステップ2のipt.xml
を使用している場合はそれと同じ)にリネームします。ipt.war
ファイルをTomcatのwebappsのフォルダにコピーし、Tomcatがまだ起動していない場合は起動します。
サーブレットコンテナ内にIPTを正常にデプロイすると、サーブレット名とポートの後に/iptを付けたURLで、WebブラウザからIPTにアクセスできるようになります(例:http://server.example.org:8080/ipt)。インストールに成功した場合、IPTのURLを使用して、IPTの初期設定ページがWebブラウザに表示されます。
続いて、IPTをインターネットに接続するに進みます。
インストールが開始されない場合は、catalina.out
のログファイルを確認し、FAQを参照してください。
以下のスクリーンキャストは、Tomcatが既にインストールされていることを前提に、Tomcatを使用してIPTをインストールする方法を説明しています。
この作業を少し工夫することで、複数のIPTを同じサーバーにインストールすることができます。 異なるバージョンのIPTを並行してインストールすることも可能ですが、常に最新版を使用することをお勧めします。 各IPTが独自のデータディレクトリを使用するように設定されていることを確認してください! |
Jetty
非常に大まかな目安として、CentOS 7で、IPTのシングルインスタンスを動作させる場合:
yum install jetty-runner
java -jar /usr/share/java/jetty/jetty-runner.jar --port 8080 ipt.war
続いて、IPTをインターネットに接続するに進みます。
Dockerを用いたインストール
GBIF maintain a Docker image, published to the Docker Hub. The image builds upon the Docker community Tomcat 9 / OpenJDK 17 image. Tomcat is exposed on port 8080 and the IPT runs as the ROOT application.
新しいDockerコンテナを実行し、Tomcatを起動し、Tomcatのポートを公開するには、このように実行します。
docker run --detach --volume /full/path/to/data-directory:/srv/ipt --publish 8080:8080 gbif/ipt
すると、8080番ポートでIPTの設定画面にアクセスできるようになります。
データディレクトリを上書きする必要がある場合は、-e IPT_DATA_DIR=/path/within/container
とすることで可能です。
デフォルトのDockerマシンのIPアドレスを知りたい場合は、docker-machine ip default
を使用してください。
gbif/ipt
ではなくgbif/ipt:version
を使って、利用可能なバージョンの中から特定のものを実行します。
IPTをインターネットに接続する
IPTをインターネット上で利用するためには、システム管理者またはネットワーク管理者と連携する必要があると思われます。
サーバーのDNS名(「ipt.example.org
」)とアクセスを許可するファイアウォールが必要です。
主にHTTPSアクセスを提供したり、同じサーバで他のウェブサイトを共有できるようにするため、多くの人がリバースプロキシとしてApache HTTPDを使用しています。
ipt.gbif.org
が使用している設定を例として示します。Apache HTTPD を使用し、mod_proxy
モジュールがインストールされています。静的画像ファイル(オカレンス画像など)を同じサーバでホストできるように、/media
と/icons
のパスはIPTに渡されないようにします。http://ipt.gbif.org/ へのリクエストは、安全な https://ipt.gbif.org/ にリダイレクトされます。
<VirtualHost *:80>
ServerName ipt.gbif.org
CustomLog logs/ipt-80_log combined
Redirect / https://ipt.gbif.org/
</VirtualHost>
<VirtualHost *:443>
ServerName ipt.gbif.org
ErrorLog logs/ipt-443_error
CustomLog logs/ipt-443_log combined
DocumentRoot /var/www/html/ipt
Options +Indexes
AddDefaultCharset UTF-8
ProxyPreserveHost On
ProxyPass /favicon.ico !
ProxyPass /icons !
ProxyPass /media !
# Linux packages or Docker example, or ROOT.war in Tomcat
ProxyPass / http://localhost:8080/
# Alternative: example for an IPT deployed in a servlet container like Tomcat
#ProxyPass /ipt http://localhost:8080/ipt
# Recommended for HTTPS configurations
RequestHeader set X-Forwarded-Proto "https"
# Typical LetsEncrypt configuration
SSLCertificateKeyFile /etc/letsencrypt/live/ipt.gbif.org/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/ipt.gbif.org/fullchain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Nginxはリバースプロキシとして使用することもできます。設定例を以下に示します。
server {
if ($host = ipt.example.org) {
return 302 https://$host$request_uri;
}
listen 80 default_server;
listen [::]:80 default_server;
server_name ipt.example.org;
return 404;
}
server {
server_name ipt.example.org;
# Linux packages or Docker example, or ROOT.war in Tomcat
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host;
proxy_pass http://localhost:8080/;
}
# Alternative: example for an IPT deployed in a servlet container like Tomcat
#location /ipt/ {
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header Host $host;
# proxy_pass http://localhost:8080/ipt/;
#}
# Typical LetsEncrypt configuration
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/ipt.example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ipt.example.org/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
TLS証明書の設定
IPTの本番環境では、IPTにアクセスする際にログインなどの情報が保護されるように、TLS証明書を使用することをお勧めします。これを設定する手順は機関のポリシーに依存することがありますが、無料のLetsEncryptサービスは良い選択です。LetsEncryptは、LinuxやWindowsで動作するApache、Nginx、その他多くのウェブサーバーに証明書を追加する手引きを提供しています。
新規導入の場合は、まずTLSでWebサーバーをセットアップし、その後IPTをインストールしてセットアップするのがベストです。設定されたIPTに証明書を追加するには、公開URLを変更する必要があります。管理セクションの公開URLの更新に関する注意を参照してください。
Verify your setup is correct using What’s My Chain Cert?. The requirements for GBIF’s servers to retrieve published data are stricter than those for normal web browsers, so ensure you receive a "has the correct chain" message from this test. (See also this FAQ entry.)