読者です 読者をやめる 読者になる 読者になる

lorisサーバ構築

lorisサーバ(画像配信サーバ?)を構築します。
なんで?とかはないです。
必要なんです。。。
OpenSeaDragon?JPEG2000?pyramid Tiff?IIIF???

環境

  • OS:CentOS7
  • Webサーバ:apache2.4
  • 画像サーバ:loris1.2.2(最新版は2.0だけどね)

フォルダとファイル

こんな感じ

パス 説明
/etc/httpd/conf.d/loris.conf apache用設定ファイル
/etc/loris/loris.conf lorisサーバ設定ファイル
/var/log/httpd/loris.log ログファイル
/var/www/loris lorisサーバスクリプト
/usr/local/share/images 配信画像のルートディレクトリ(/etc/loris/loris.conf#src_img_rootにて定義)

構築手順

OSインストール

  • OSはminimalでインストールしました。ごく普通に。 必要なパッケージは後から都度追加する方針です。

apacheインストール

  • apacheをインストールします。yumで一発で入ります。後で使う「mod_wsgi」モジュールもインストールします。 httpd.confは適当に設定してね。
# yum -y install httpd httpd-devel mod_wsgi

画像ライブラリのインストール

  • なにやらいろいろ入れます。

zlib

# wget http://zlib.net/zlib-1.2.8.tar.gz
# tar xfz zlib-1.2.8.tar.gz
# pushd zlib-1.2.8
# ./configure
# make
# make install
# popd
# rm -rf zlib-1.2.8.tar.gz

libjpeg

# yum -y install libjpeg libjpeg-devel

pip(要python-setuptools)

# easy_install pip

画像ライブラリ

# yum -y install \
libjpeg-turbo \
libjpeg-turbo-devel \
freetype \
freetype-devel \
zlib-devel \
lcms2 \
lcms2-devel \
lcms-utils \
libtiff-devel \
libwebp-devel \
python-devel \
python-setuptools

pythonライブラリのインストール

# pip install Pillow
# pip install configobj
# pip install requests
# pip install mock
# pip install responses

LIBフォルダ追加

# echo /usr/local/lib > /etc/ld.so.conf.d/custom.conf
# ldconfig

lorisインストール

やっとlorisのインストールです。

lorisユーザ作成

# useradd -d /var/www/loris -s /sbin/false loris

セットアップ

# pushd /usr/local/src
# wget https://github.com/loris-imageserver/loris/archive/1.2.2.tar.gz -O loris.tar.gz
# tar xfz loris.tar.gz
# pushd /usr/local/src/loris-1.2.2
# ./setup.py install
# popd

apache設定ファイルの追加

/etc/httpd/conf.d/loris.confを新規作成。

# /etc/httpd/conf.d/loris.conf

ExpiresActive On
ExpiresDefault "access plus 5184000 seconds"

AllowEncodedSlashes On

WSGIDaemonProcess loris user=loris group=loris processes=10 threads=15 maximum-requests=10000
WSGIScriptAlias /loris /var/www/loris/loris.wsgi
WSGIProcessGroup loris

WSGISocketPrefix /var/run/wsgi


SetEnvIf Request_URI ^/loris loris
CustomLog logs/loris-access.log combined env=loris

apache再起動

apacheを再起動して設定を反映します。

# systemctl restart httpd.service

動作確認

デフォルトで入っているサンプル画像を画像ルートへコピーして表示確認。

# pushd /usr/local/src/loris-1.2.2/tests
# cp -r img /usr/local/share/images

URLはこんな感じ。(設定が定義されているjsonが返ってくるみたいです)

画像自体へのリクエストはこんな感じ。

参考
Home — IIIF | International Image Interoperability Framework